给一个不多于5位的正整数,要求:
①求出它是几位数;
②分别输出每一位数字;
③按逆序输出各位数字,例如原数为321,应输出123.
#include<stdio.h>
#include<cstdlib>
int main(){
int num,d1,d2,d3,d4,d5;
printf("请输入一个不多于5位的正整数:");
scanf("%d",&num);
if(num>99999||num<0){
printf("输入错误!");
exit(0);
}
d5=num/10000;
num=num%10000;
d4=num/1000;
num=num%1000;
d3=num/100;
num=num%100;
d2=num/10;
num=num%10;
d1=num;
if(d5!=0){
printf("该数为5位数\n");
printf("第5位为%d,第4位为%d,第3位为%d,第2位为%d,第1位为%d",d5,d4,d3,d2,d1);
printf("\n逆序为:%d%d%d%d%d",d1,d2,d3,d4,d5);
}
else if (d4!=0){
printf("该数为4位数\n");
printf("第4位为%d,第3位为%d,第2位为%d,第1位为%d",d4,d3,d2,d1);
printf("\n逆序为:%d%d%d%d",d1,d2,d3,d4);
}
else if(d3!=0){
printf("该数为3位数\n");
printf("第3位为%d,第2位为%d,第1位为%d",d3,d2,d1);
printf("\n逆序为:%d%d%d",d1,d2,d3);
}
else if(d2!=0){
printf("该数为2位数\n");
printf("第2位为%d,第1位为%d",d2,d1);
printf("\n逆序为:%d%d",d1,d2);
}
else{
printf("该数为1位数\n");
printf("第1位为%d",d1);
printf("\n逆序为:%d",d1);
}
return 0;
} #include <stdio.h>
int main() {
int x;
printf("给一个不多于5位的正整数");
scanf("%d",&x);
while(1){
if(x>=100000||x<=0){
printf("范围错误!请重新输入");
scanf("%d",&x);
}else{
break;
}
}
//判断几位数
int y = x;
int sum = 0;
for(int i = 0;i<y;i++){
y/=10;
sum++;
}
printf("①你给的数为%d位数\n",sum);
y = x;
//每位数
int digit = 0;
//结果
int result = 0;
while(y>0){
digit = y%10;
result = result *10 + digit;
y/=10;
printf("②分别输出每一位数字%d\n",digit);
}
printf("③按逆序输出数字为%d",result);
return 0;
}