原题链接:[编程入门]数字的处理与判断
解题思路:
题目中已经说是一个不多于5位的整数,所以就可以直接利用这个条件
注意事项:
if语句的正确使用,switch语句的使用以及数组的使用
参考代码:
第一种
#include <stdio.h> void main() { int a,b,c,d,e,count,n,x=0; scanf("%d",&n); if(n>=10000) count=5; else if(n>=1000) count=4; else if(n>=100) count=3; else if(n>=10) count=2; else count=1; printf("%d\n",count); a=n/10000; b=(n-a*10000)/1000; c=(n-a*10000-b*1000)/100; d=(n-a*10000-b*1000-c*100)/10; e=n-a*10000-b*1000-c*100-d*10; switch(count) { case 5:printf("%d %d %d %d %d\n",a,b,c,d,e);break; case 4:printf("%d %d %d %d\n",b,c,d,e);break; case 3:printf("%d %d %d\n",c,d,e);break; case 2:printf("%d %d\n",d,e);break; case 1:printf("%d\n",n);break; default:printf("输入错误!\n");break; } do { x=x*10+n%10; n/=10; }while(n!=0); printf("%d\n",x); }
第二种(与第一种有略微区别)
#include <stdio.h> void main() { int a,b,c,d,e,count,n,x; count=0; scanf("%d",&n); x=n; while(x!=0) { count++; x=x/10; } printf("%d\n",count); a=n/10000; b=(n-a*10000)/1000; c=(n-a*10000-b*1000)/100; d=(n-a*10000-b*1000-c*100)/10; e=n-a*10000-b*1000-c*100-d*10; switch(count) { case 5:printf("%d %d %d %d %d\n",a,b,c,d,e);break; case 4:printf("%d %d %d %d\n",b,c,d,e);break; case 3:printf("%d %d %d\n",c,d,e);break; case 2:printf("%d %d\n",d,e);break; case 1:printf("%d\n",n);break; default:printf("输入错误!\n");break; } do { x=x*10+n%10; n/=10; }while(n!=0); printf("%d\n",x); }
第三种(用数组)
#include <stdio.h> int main() { int a,i=0,j; int b[5]; scanf("%d",&a); while(a!=0) { b[i]=a%10; a=a/10; i++; } printf("%d\n",i); for(j=i-1;j>=0;j--) printf("%d ",b[j]); printf("\n"); for(j=0;j<i;j++) printf("%d",b[j]); return 0; }
0.0分
1 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复