c语言,求助大神<( ̄ˇ ̄)/~求程序<( ̄ˇ ̄)/~ 编写程序,将一个十进制数转换为十六进制数。

如题所述

第1个回答  2019-08-25
第一种:用来糊弄老师的,输入一个数采用16进制格式输出
#include

int
main()
{
int
num
=
0;
scanf("%d",
&num);
printf("%x",
num);
return
0;
}
第二种:
#include

#include

char
onumtable[6]
=
{'a',
'b',
'c',
'd',
'e',
'f'};
void
dtoo(int,
char*);
int
main()
{
int
dnum;
char
onum[100]
=
{0};
//输入一个十进制数
scanf("%d",
&dnum);
//调用转换函数,将十进制转换成以字符串表示的十六进制
dtoo(dnum,
onum);
//输出以字符串表示的16进制数据
printf("%s\n",
onum);
return
0;
}
void
dtoo(int
dnum,
char*
onum)
{
char
temp[100]
=
{0};
for
(int
i
=
0;
(dnum)
&&
(i
<
100)
;
i++)
{
temp[i]
=
(dnum
%
16);
if
(temp[i]
>
9)
{
temp[i]
=
onumtable[temp[i]
-
10];
}
else{
temp[i]
+=
'0';
}
dnum
/=
16;
}
char*
p
=
temp;
while
(*(p+1))
p++;
for
(int
i
=
0;
p
!=
temp
-
1;
i++,
p--)
{
onum[i]
=
*p;
}
}
相似回答