一道题 求更好的解决方法 小白问题
题目:给一个不多于五位的正整数,要求:
1 求出它是几位数
2 分别输出每一位数字
3按照逆序输出各位数字,例如原数为321,应该输出123
下面是我写的 可我觉得还得有简单的方法。目前我学完了 选择结构设计。就是if 和 switch 语句。就用我学过的 大家能帮我想个简单的方法吗?
我的代码中 a,b,c,d,e 分别为个位 十位 百位 千位 万位
p,q,t 分别 多位数取出的余数 作为中间变量
有 z 位数
程序代码:#include <stdio.h>
#include <conio.h>
void main()
{
int x,a,b,c,d,e,p,q,t,z;
scanf("%d",&x);
if (x<10)
{
z=1;
a=x;
printf("这是个%d位数\n",z);
printf("个位%d\n",a);
printf("逆序为%d\n",a);
}
else if (x<100)
{
z=2;
a=x%10;
b=x/10;
printf("这是个%d位数\n",z);
printf("十位%d,个位%d\n",b,a);
printf("逆序为%d%d\n",a,b);
}
else if (x<1000)
{
z=3;
c=x/100;
p=x%100;
a=p%10;
b=p/10;
printf("这是个%d位数\n",z);
printf("百位%d,十位%d,个位%d\n",c,b,a);
printf("逆序为%d%d%d\n",a,b,c);
}
else if (x<10000)
{
z=4;
d=x/1000;
q=x%1000;
c=q/100;
p=q%100;
a=p%10;
b=p/10;
printf("这是个%d位数\n",z);
printf("千位%d,百位%d,十位%d,个位%d\n",d,c,b,a);
printf("逆序为%d%d%d%d\n",a,b,c,d);
}
else if (x<100000)
{
z=5;
e=x/10000;
t=x%10000;
d=t/1000;
q=t%1000;
c=q/100;
p=q%100;
a=p%10;
b=p/10;
printf("这是个%d位数\n",z);
printf("万位%d,千位%d,百位%d,十位%d,个位%d\n",e,d,c,b,a);
printf("逆序为%d%d%d%d%d\n",a,b,c,d,e);
}
getch();
}




