题目:
给出一个不多于5位数的正整数,要求:
1、求出它是几位数;
2、分别输出每一位数字;
3、按逆序输出每一位数字;例如原数是321,输出为123.
#include<math.h>
#include<stdio.h>
int main(){
int x,t;
int a,b,c,d,e; //个、十、 百、千、万
printf("请输入一个不多于5位的正整数:");
scanf("%d",&x);
if((x>99999) || (x<=0)) { //验证输入数据的合法性
printf("输入数据不合法!"); return(1);
}
else{
a=x%10;x=x/10; //%取余,/取整
printf("x=%d a=%d\n",x,a);
b=x%10;x=x/10;
c=x%10;x=x/10;
d=x%10;x=x/10;
e=x%10;
if(e>0){
printf("每一位数字为:%d,%d,%d,%d,%d\n",e,d,c,b,a);
printf("逆序为:%d%d%d%d%d\n",a,b,c,d,e);
t=5;
}
else if(d>0){
printf("每一位数字为:%d,%d,%d,%d\n",d,c,b,a);
printf("逆序为:%d%d%d%d\n",a,b,c,d);
t=4;
}
else if(c>0){
printf("每一位数字为:%d,%d,%d\n",c,b,a);
printf("逆序为:%d%d%d\n",a,b,c);
t=3;
}
else if(b>0){
printf("每一位数字为:%d,%d\n",b,a);
printf("逆序为:%d%d\n",a,b);
t=2;
}
else {
printf("每一位数字为:%d\n",a);
printf("逆序为:%d\n",a);
t=1;
}
printf("输入位数为:%d\n",t);
}
return 0;
}