小题目,求简单点的方法,越简单越好
给一个不多于5位数的正整数,要求:① 求出它是几位数;
② 分别输出每一个数字;
③ 按逆序输出各个数字,例如原数321,应输出123.
#include <stdio.h>
void main()
{
long a,b,c,d,e,m,k;
printf("请输入一个不多于5位数的正整数\n");
scanf("%d",&m);
a=m%10;
b=(m%100)/10;
c=(m%1000)/100;
d=(m%10000)/1000;
e=(m%100000)/10000;
if(e>0) k=5;
else if(d>0) k=4;
else if(c>0) k=3;
else if(b>0) k=2;
else k=1;
switch(k)
{
case 1:printf("1位数\n%d\n%d\n",a,a);break;
case 2:printf("2位数\n%d%d\n%d%d\n",b,a,a,b);break;
case 3:printf("3位数\n%d%d%d\n%d%d%d\n",c,b,a,a,b,c);break;
case 4:printf("4位数\n%d%d%d%d\n%d%d%d%d\n",d,c,b,a,a,b,c,d);break;
case 5:printf("5位数\n%d%d%d%d%d\n%d%d%d%d%d\n",e,d,c,b,a,a,b,c,d,e);break;
}
}