题目描述
给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123
输入
一个不大于5位的数字
输出
三行第一行 位数第二行 用空格分开的每个数字,注意最后一个数字后没有空格第三行 按逆序输出这个数
样例输入
12345
样例输出
5
1 2 3 4 5
54321
参考代码
#include <stdio.h>
int main()
{
int x,a,b,c,d,e,n,j;
scanf("%d",&x);
a=x/10000;
b=x/1000-a*10;
c=x/100-a*100-b*10;
d=x/10-a*1000-b*100-c*10;
e=x-a*10000-b*1000-c*100-d*10;
if(a!=0)n=5; else if(a==0 && b!=0)n=4; else if(a==0 && b==0 && c!=0)n=3; else if(a==0 && b==0 && c==0 && d!=0)n=2; else n=1;
if(a>9)printf("è¾å
¥çæ°å¤§äº5ä½!n");
else{if(n==1) printf("%d %dn",n,e);
else if(n==2) printf("%d %d %dn",n,d,e);
else if(n==3) printf("%d %d %d %dn",n,c,d,e);
else if(n==4) printf("%d %d %d %d %dn",n,b,c,d,e);
else if(n==5) printf("%dn%d %d %d %d %dn",n,a,b,c,d,e);
if(n==5)j=e*10000+d*1000+c*100+b*10+a;
else if(n==4)j=e*1000+d*100+c*10+b;
else if(n==3)j=e*100+d*10+c;
else if(n==2)j=e*10+d;
else j=e;
printf("%dn",j);
return 0;
}}
解析
暂无