求解~这个运行出错在哪里
给定一个不多于5位的正整数,要求:① 求它是几位数;
② 分别打印出每一位数字;
③ 按逆序打印出各位数字。例如原数为321,应输出123。
#include<stdio.h>
void main()
{
int a,b,c,d,e,f,g;
scanf("%d",&a);
if(0<a<10000)
{
printf("%d\n",a);
b=a/1000;
c=a/100%10;
d=a/10%10;
e=a%10;
printf("千位=%d\n百位=%d\n十位=%d\n个位=%d\n",b,c,d,e);
f=e;
e=b;
b=f;
g=c;
c=d;
d=g;
printf("%d%d%d%d",b,c,d,e);
}
else
{
printf("error x");
}
}
**********************************************
我输入1234
程序运行结果:
1234
千位=1
百位=2
十位=3
个位=4
4321
这个结果是对的
**********************************************
我输入12345
程序运行结果:
12345
千位=12
百位=3
十位=4
个位=5
54312
为什么没有满足另一个大于10000的条件呢