麻烦大家帮我看下这段小程序哪里有问题
题目是输入一个不多于5位的正整数,要求:1 求它是几位数;2 分别输出每一位数字;3 按逆序输出各位数字。例如原数为321,应输出123。我输入123,为什么程序运行结果是320?
#include <stdio.h>
#include <math.h>
int main()
{
int a,m=0,i,j;
int b[4];
scanf("%d",&a);
printf("从个位到最高位上的数字依次是:\n");
for(i=0;i<=4;i++)
{
b[i]=a%10;
printf("%d\n",b[i]);
a=a/10;
if(a==0)
break;
}
printf("这是%d位数\n",i+1);
for(j=0;j<=i;j++)
{
m=m+b[j]*pow(10,i-j);
}
printf("这个数的逆序是%d\n",m);
return 0;
}