给一个不多于 5 位的正整数,要求:1,求她是几位数; 2,分别输出每一位数字 3,按逆序输出各位数字,例如原数为 321,应输出 123.
#define M 100000#include <stdio.h>
void main()
{
long int i;
int a,b,c,d,e,place;
printf("请输入一个小于%d的正整数i:",M);
scanf("%d",&i);
while(i>M)
{
printf("不符合要求,请重新输入一个小于%d的正整数i:",M);
scanf("%d",&i);
}
if(i>=10000)
place=5;
else if(i>=1000)
place=4;
else if(i>=100)
place=3;
else if(i>=10)
place=2;
else
place=1;
printf("输入数的位数是:%d\n",place);
printf("每位的数字为:");
e=i/10000;
d=(i-10000*e)/1000;
c=(i-10000*e-1000*d)/100;
b=(i-10000*e-1000*d-100*c)/10;
a=(i-10000*e-1000*d-100*c-10*b)/1;
// printf("%d%d%d%d%d",a,b,c,d,e);
switch(place)
{
case 5:printf("%d %d %d %d %d",e,d,c,b,a);
printf("\n反序数字为:");
printf("%d %d %d %d %d",a,b,c,d,e);break;
case 4:printf("%d %d %d %d",d,c,b,a);
printf("\n反序数字为:");
printf("%d %d %d %d",a,b,c,d);break;
case 3:printf("%d %d %d",c,b,a);
printf("\n反序数字为:");
printf("%d %d %d",a,b,c);break;
case 2:printf("%d %d",b,a);
printf("\n反序数字为:");
printf("%d %d",a,b);break;
case 1:printf("%d",a);
printf("\n反序数字为:");
printf("%d",a);break;
default:printf("enter data error!");
}
}