给一个不多于5位的正数,要求:
(1)求出它是几位数;
(2)分别输出每一位数字;
(3)按逆序输出各位数字,例如原数为321,应输出123。
#include<stdio.h>
void main(){
long n;
int a,b,c,d,e,m,i;
scanf("%ld",&n);
if(n>99999||n<1) printf("The nunmer %ld is error!!\n",n);
else{
if(n>9999&&n<=99999) i=5;
else
if(n>999&&n<=9999) i=4;
else
if(n>99&&n<=999) i=3;
else
if(n>9&&n<=99) i=2;
else i=1;
printf("%ld have %d numbers!\n",n,i);
switch(i){
default:printf("error!!\n");break;
case 5: a=n/10000;
m=n%10000;
printf("a=%d,m=%d\n",a,m);
b=m/1000;
m=m%1000;
printf("b=%d,m=%d\n",b,m);
c=m/100;
m=m%100;
printf("x=%d,m=%d\n",c,m);
d=m/10;
e=m%10;
printf("a=%d,b=%d,c=%d,d=%d,e=%d\n",a,b,c,d,e);
printf("%d%d%d%d%d\n",e,d,c,b,a);
break;
case 4: a=n/1000;
m=n%1000;
printf("a=%d,m=%d\n",a,m);
b=m/100;
m=m%100;
c=m/10;
d=m%10;
printf("a=%d,b=%d,c=%d,d=%d\n",a,b,c,d);
printf("%d%d%d%d\n",d,c,b,a);
break;
case 3: a=n/100;
m=m%100;
b=m/10;
c=m%10;
printf("a=%d,b=%d,c=%d\n",a,b,c);
printf("%d%d%d\n",c,b,a);
break;
case 2: a=n/10;
b=n%10;
printf("a=%d,b=%d\n",a,b);
printf("%d%d\n",b,a);
break;
case 1: printf("n=%ld",n);
break;
}
}
printf("end!!\n");
}
希望高手指导更容易的方法!欢迎留下评语!!