#include<stdio.h>
int main()
{
    int n,a,b,c,d,e;//n为数字,abcde表示数字
    scanf("%d",&n);
    e=n%10;
    d=(n%100)/10;
    c=(n%1000)/100;
    b=(n%10000)/1000;
    a=n/10000;
    if (a>0)printf("5\n");
    else if (b>0)printf("4\n");
    else if (c>0)printf("3\n");
    else if (d>0)printf("2\n");
    else printf("1\n");
    printf("%d %d %d %d %d\n",a,b,c,d,e);
    printf("%d%d%d%d%d\n",e,d,c,b,a);
    return 0;
}


点赞(110)
 

0.0分

5 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 35 条评论

木苏 7年前 回复TA
if (a > 0)
	{
		printf("5\n");
		printf("%d %d %d %d %d\n", a, b, c, d, e);
		printf("%d%d%d%d%d\n", e, d, c, b, a);
	}
	else if (b > 0)
	{
		printf("4\n");
		printf("%d %d %d %d\n", b, c, d, e);
		printf("%d%d%d%d\n", e, d, c, b);
	}
	else if (c > 0)
	{
		printf("3\n");
		printf("%d %d %d\n", c, d, e);
		printf("%d%d%d\n", e, d, c);
	}
	else if (d > 0)
	{
		printf("2\n");
		printf("%d %d\n", d, e);
		printf("%d%d\n", e, d);
	}
	else
	{
		printf("1\n");
		printf("%d\n", e);
		printf("%d\n", e);
	}
这样没毛病
木苏 7年前 回复TA
为什么会有0多,然而却是对的
萨芬的 7年前 回复TA
这样并不灵活 可以看下我的题解
古月 7年前 回复TA
少于五位的会多出来0,怎么办
NiKlous 7年前 回复TA
@寒风 不对,我的理解错了
NiKlous 7年前 回复TA
@寒风 这个解法是不对的,因为输入的数字不一定就是五位数
寒风 7年前 回复TA
不应该把代码写死
knight 7年前 回复TA
我想问一下你,如果自己要写题解的话,如何写成你这种代码有颜色区分,并且每一行都有行数标注的形式?
kunkun1314 7年前 回复TA
你这样写得话,输如2000
输出00200,不对吧
西科大才子 7年前 回复TA
比我简单好多