请问这段代码有什么错误

#include<stdio.h>
void main()
{
int i,b,c,count=0;
scanf("%d",&b);
c=b;
while(c>0)
{
c/=10;
count++;
}//输入一个整数,求其位数
int a[10]={0};
for(i=0;i<count;i++)
{
a[i]=b%10;
printf("%d",a[i]);
b/=10;
}//将整数分解存进数组

}
初学者,希望能详细说明一下错误的地方,谢谢

img


img

while循环中将各个数存放在一维数组中。

#include<stdio.h>
int main()
{
    int i,c,count=0;
    int a[10]={0};
    scanf("%d",&c);
    while(c>0)
    {
        a[count++]=c%10;
        c/=10;
    }//输入一个整数,求其位数

    for(i=0;i<count;i++)
    {
        printf("%d",a[i]);
    }//逆序输出 
    return 0;
}

img

你这是颠倒顺序的代码

for(i=0;i<count;i++)
{
a[i]=b/pow(10.0,count-i-1);
printf("%d",a[i]);
b %= (int)pow(10.0,count-i-1);
}//将整数分解存进数组