改成递归函数
修改这段代码,去掉反转的部分:
#include <stdio.h>
int main()
{
int num,rem,i=0,j;
char hex[50];
printf("Enter a decimal number: ");
scanf("%d",&num);
while(num>0)
{
rem=num%16;
if(rem<10)
hex[i]=48+rem;
else
hex[i]=55+rem;
i++;
num/=16;
}
printf("Hexadecimal number: ");
for(j=i-1;j>=0;j--)
printf("%c",hex[j]);
return 0;
}
改为:
#include <stdio.h>
int main()
{
int num,rem,i=0;
char hex[50];
printf("Enter a decimal number: ");
scanf("%d",&num);
while(num>0)
{
rem=num%16;
if(rem<10)
hex[i]=48+rem;
else
hex[i]=55+rem;
i++;
num/=16;
}
hex[i]='\0';
printf("Hexadecimal number: %s",hex);
return 0;
}
这样就可以直接输出转化后的十六进制数了,不需要反转。