一、题目
给一个不多于5位的正整数,要求:
求出它是几位数
分别输出每一位数字
按逆序输出各位数字,例如原数为321,应输出123
二、解题思路
循环,除法,switch语句
三、代码
#include <stdio.h>
int main()
{
printf("请输入一个不多于5位的整数:");
int n;
scanf("%d",&n);
int place=1;
int m=n/10;
while(m!=0)//求位数
{
place++;
m=m/10;
}
printf("位数:%d\n",place);
int a,b,c,d,e;//万,千,百,十,个
a=n/10000;
b=(n-a*10000)/1000;
c=(n-a*10000-b*1000)/100;
d=(n-a*10000-b*1000-c*100)/10;
e=n-a*10000-b*1000-c*100-d*10;
printf("每位数字为:");
switch(place)
{
case 5:printf("%d,",a);
case 4:printf("%d,",b);
case 3:printf("%d,",c);
case 2:printf("%d,",d);
case 1:printf("%d\n",e);
}
printf("反序数字为:");
int flag=0;
if(flag<place)
{
printf("%d",e);
flag++;
}
if(flag<place)
{
printf("%d",d);
flag++;
}
if(flag<place)
{
printf("%d",c);
flag++;
}
if(flag<place)
{
printf("%d",b);
flag++;
}
if(flag<place)
{
printf("%d",a);
flag++;
}
return 0;
}
ps.略复杂,不建议参考