【C语言】之''正整数的打印''

老师平时布置的希冀系统上的作业答案,仅供参考!

【问题描述】

给出一个不多于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
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容