给一个不多于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; }