原题链接:[编程入门]数字的处理与判断
解题思路:
看注释即可。注释是本人解决本题的心路历程。(有点杂,凑合看吧。)
注意事项:
参考代码:
#include<stdio.h> int main() { int x1,x,a,b[5],i; //首先确定的变量是输入的数x,然后根据需要再去设置变量a,x1,以及数组b[]。 scanf("%d",&x); x1=x; //(本来没有设x1这个变量,但后面需要用到x的值,才用变量x1先代替x) for(a=0;x1>0;a++) //这个for循环是求x的位数,用a输出。 { x1=x1/10; //采用x1/10,依次得到个位,十位,百位··· } printf("%d\n",a); for( i=0;i<a;i++) //这个for循环是为了给数组赋值。(为什么是i<a呢?因为位数是不确定的,所以我不采用i<5做循环结束的条件) { b[i]=x%10; //b[0]是个位的数,b[1]是十位的数,依次赋值 x=x/10; //这里就是第二行注释说的事。后面不需要x了,所以我可以直接改变x的值。 } for( i=a-1;i>=0;i--) //这个for循环是为了实现题目中结果的第二行。(但我阴差阳错地先实现了结果的第三行,所以请先看下一个for循环。) { printf("%d",b[i]); //倒序输出数组b[]。 if(i!=0) printf(" "); else if(i==0) //当输出了b[0]后,不打印空格而是进行换行操作。 printf("\n"); } for( i=0;i<a;i++) //这个for循环实现了倒叙输出x。 { printf("%d",b[i]); //数组b[]是按照 个 十 百 千 的顺序赋值的,所以直接按正序输出即可。 } return 0; } //如果对本题有疑问或者分享更好的思路,欢迎评论,大家一起讨论进步!
0.0分
2 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复