用的是code block 20.03,代码与输出如图,在输入十位数及以上时没有问题,个位数出现这个情况。大一c语言初学者,求个简单易懂的解决答案,谢谢
你的代码有两个错误:
(1)if(b==0)这个代码块了的break;这一句删掉
if(b==0)
{
a[i]='0';
//break; //这个break注释掉
}
(2)while(i>=0)这里,在while之前加一句i--;
因为for循环后,i是a数组的长度,实际元素从i-1开始
i--;
while(i>=0)
{
printf("%c",a[i]);
i--;
}
为什么 b==0的时候你要break呢?完全和后面一样处理啊
另外这么多if...else也比较糟糕
for(int i=0;n!=0;i++)
{
b = n%16;
if(b>=0 && b<= 9)
a[i] = b+'0';
else
a[i] = b-10+'a';
n=n/16;
}