解题思路:首先利用C语言的一个特性,整型(整数)只有整数部分,多了的直接丢掉;其次采用一个依此求各位数上的办法,数学好的应该能看懂,举个例子:例如“123‘这个数,在C语言里123除以100就是百位上的数并设其为x1,那十位上的数x2=123/10-10*x1,然后就是很简单的装入数组里了,再有序地打印
注意事项:
1、开头的判断几位数的”等于号“一定不能少,不然可能会让程序直接崩溃
2、代码虽然简单,但每个变量,运算符都有意义,要用心去看
3、整个方法偏数学,所以用到的C知识并不是很深
参考代码:
#include<stdio.h>
int main()
{
int n,x,all[5],x1=0,x2=0,x3=0,x4=0,x5=0;
scanf("%d",&n);
if (n<=99999)
x=5;
if (n<=9999)
x=4;
if (n<=999)
x=3;
if (n<=99)
x=2;
if (n<=9)
x=1;
if (n/10000>=1)
x5=n/10000;
if (n/1000>=1)
x4=n/1000-10*x5;
if (n/100>=1)
x3=n/100-100*x5-10*x4;
if (n/10>=1)
x2=n/10-1000*x5-100*x4-10*x3;
x1=n-10000*x5-1000*x4-100*x3-10*x2;
if (n<10)
{
printf("1\n%d\n%d\n",n,n);
return 0;
}
all[0]=x1;
all[1]=x2;
all[2]=x3;
all[3]=x4;
all[4]=x5;
int z;
printf("%d\n",x);
for (z=x;z>0;z--)
printf("%d ",all[z-1]);
printf("\n");
for (z=x;z>0;z--)
printf("%d",all[x-z]);
return 0;
}
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复