在程序中这种题最终结果都是用十进制输出的,其实如果不用程序,只需要在输入时%x输入16进制,输出%d即可自动转换为10进制。不过下面这个题目的结果却没有输出不是很了解,希望能看到的大佬能解答一二。
#include
void dg(int h);
void shuchu(int i);
int main()
{
int a;
scanf("%d",&a);
if(a==0)
{
printf("0");
}
else
{
dg(a);
}
return 0;
}
void dg(int h)
{
if((h/16)>15)
{
dg(h/16);
shuchu(h%16);
}
else
{
shuchu(h/16);
shuchu(h%16);
}
}
void shuchu(int i)
{
switch(i)
{
case'0':printf("0");break;
case'1':printf("1");break;
case'2':printf("2");break;
case'3':printf("3");break;
case'4':printf("4");break;
case'5':printf("5");break;
case'6':printf("6");break;
case'7':printf("7");break;
case'8':printf("8");break;
case'9':printf("9");break;
case'10':printf("A");break;
case'11':printf("B");break;
case'12':printf("C");break;
case'13':printf("D");break;
case'14':printf("E");break;
case'15':printf("F");break;
default:printf(" ");
}
}