c语言利用数组与for循环输出时出现“[]”(好像)是什么情况

用的是code block 20.03,代码与输出如图,在输入十位数及以上时没有问题,个位数出现这个情况。大一c语言初学者,求个简单易懂的解决答案,谢谢

img

img

你的代码有两个错误:
(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;
}