老师平时布置的希冀系统上的作业答案,仅供参考!
【问题描述】
给出一个不多于5位的正整数,要求:
1.求出它是几位数。
2.分别打印出每一位数字。
3.按照逆序打印出每一位数字。
【输入形式】
控制台输入该正整数。
【输出形式】
控制台分行输出输出结果。
【样例1输入】
1234
【样例1输出】
4
1234
4321
【样例1说明】
1234位数为4,分别为1,2,3,4,逆序为4321
【样例2输入】
200
【样例2输出】
3
200
002
【样例1说明】
200位数为3,分别为2,0,0,逆序为002
【参考答案】
#include <stdio.h>
#include <stdlib.h>
int main()
{
int x, a, b, c, d, e;
scanf("%d", &x);
int wei=1;
for(int i=x;;)
{
i=i/10;
if(i%10!=0)
wei++;
else
break;
}
a = x / 10000;
b = x / 1000;
c = x / 100;
d = x / 10;
e = x - d * 10;
printf("%d\n",wei);
if (a >= 1 && a <= 9){
printf("%d%d%d%d%d\n", a, b-a*10, c-b*10, d-c*10, e);
printf("%d%d%d%d%d\n", e, d-c*10, c-b*10, b-a*10, a);
}
else if (b >= 1 && b <= 9){
printf("%d%d%d%d\n", b, c-b*10, d-c*10, e);
printf("%d%d%d%d\n", e, d-c*10, c-b*10, b);
}
else if (c >= 1 && c <= 9){
printf("%d%d%d\n", c, d-c*10, e);
printf("%d%d%d\n", e, d-c*10, c);
}
else if (d >=1 && d <= 9){
printf("%d%d\n", d, e);
printf("%d%d\n", e, d);
}
else{
printf("%d\n", x);
}
if(x==1)
printf("1");
}
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容