解题思路: 1:判断位数!
2:输出(正序:要求空格/逆序)
注意事项: @@@怎样实现对位数的提取@@@我用了一个while(n/*是输入值,*/){
n /= 10;
s++;/*上面除一次,n的值就缩小10倍,直到为个位数后s的值就能表示输入值的位数为!*/
}
@@@ 后面输出就是按最笨的方法弄滴@@@
参考代码:
#include <stdio.h>
#include <math.h>
int main()
{
int s=0,j,n,a,b,c,d,e;
scanf("%d",&j);
n=j; //把j赋值给n,以保留aj
while(n){ //当n=0时,跳出循环
n/=10;
s++; //输入值得位数
}
//这后面这一段来个哥们帮忙优化一下
printf("%d\n",s);
if(j>=10000){
a=j/10000;
b=(j-a*10000)/1000;
c=(j-a*10000-b*1000)/100;
d=(j-a*10000-b*1000-c*100)/10;
e=j-a*10000-b*1000-c*100-d*10;
printf("%d %d %d %d %d\n",a,b,c,d,e);
printf("%d%d%d%d%d",e,d,c,b,a);
}
else if(j>=1000){
b=(j-a*10000)/1000;
c=(j-a*10000-b*1000)/100;
d=(j-a*10000-b*1000-c*100)/10;
e=j-a*10000-b*1000-c*100-d*10;
printf("%d %d %d %d %d\n",b,c,d,e);
printf("%d%d%d%d",e,d,c,b);
}
else if(j>=100){
c=(j-a*10000-b*1000)/100;
d=(j-a*10000-b*1000-c*100)/10;
e=j-a*10000-b*1000-c*100-d*10;
printf("%d %d %d %d %d\n",c,d,e);
printf("%d%d%d",e,d,c);
}
else if(j>=10){
d=(j-a*10000-b*1000-c*100)/10;
e=j-a*10000-b*1000-c*100-d*10;
printf("%d %d\n",d,e);
printf("%d%d",e,d);
}
else{
e=j-a*10000-b*1000-c*100-d*10;
printf("%d\n",e);
printf("%d%d",e);
}
}
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复