C大虾帮忙检查个C程序
题:给以个不多于5位的正整数,要求:(1)求它是几位数,(2)分别打印出每一位数字,(3)按逆序打印出各位数字。
(这段程序有5位时,是正确输出;但是如果只有四位数字时,就会出现错误,有哪位知道如何修改么)
#include <stdio.h>
void main()
{long x,nnum;
int num,t1,t2,t3,t4,t5;
scanf("%ld",&x);
if(x>9999)num=5;
else if(x>999)num=4;
else if(x>99)num=3;
else if(x>9)num=2;
else num=1;
printf("num=%d\n",num);
t1=x/10000;
t2=(int)(x-t1*10000)/1000;
t3=(int)(x-t1*10000-t2*1000)/100;
t4=(int)(x-t1*10000-t2*1000-t3*100)/10;
t5=(int)x-t1*10000-t2*1000-t3*100-t4*10;
if(x>9999)
printf("t1=%d,t2=%d,t3=%d,t4=%d,t5=%d\n",t1,t2,t3,t4,t5);
else if(x>999)
printf("t2=%d,t3=%d,t4=%d,t5=%d\n",t2,t3,t4,t5);
else if(x>99)
printf("t3=%d,t4=%d,t5=%d\n",t3,t4,t5);
else if(num=9)
printf("t4=%d,t5=%d\n",t4,t5);
else printf("t5=%d\n",t5);
switch(num)
{case 1:printf("%d\n",t5);
case 2:printf("%d%d\n",t5,t4);
case 3:printf("%d%d%d\n",t5,t4,t3);
case 4:printf("%d%d%d%d\n",t5,t4,t3,t2);
case 5:printf("%d%d%d%d%d\n",t5,t4,t3,t2,t1);
}
system("pause");
}