原题链接:[编程入门]数字的处理与判断
解题思路:首先应该判断输入的数字是否在条件范围内,如果超出范围需要设置相应程序进行重新输入,然后在判断知道输入正确为止。
其次应该分清程序所要实现的功能,然后一个一个的实现(此题中为 : 判断输入数字为几位数 ; 分别显示每一位的具体数字;将数字的每一位倒序排列 )
简单的功能我直接在主程序中实现了(不规范行为嗷,后面两个功能的话,我设置了对应的函数(啊,其实就是把第一个函数照搬过来,然后就是 t=a,a=b,b=t这些简单方法)
注意事项:
注意数组的第一位为a[0]
参考代码:
#include <stdio.h> void content(int i,int j); void reverse(int i,int j); void main() { int a,num,flag=0; scanf("%d",&a); while(a/10000>=10) { printf("输入数字超出范围请重新输入:\n"); scanf("%d",&a); } if(a/10000<10) flag=1; //确定位数 if(flag==1) { if(a>=0&&a<10) num = 1; else if(a>=10&&a<100) num = 2; else if(a>=100&&a<1000) num = 3; else if(a>=1000&&a<10000) num = 4; else num = 5; printf("%d\n",num); content(num,a); printf("\n"); reverse(num,a); } } // 单独输出所输入数据的每一位数字 void content(int i,int j)//位数,输入数据 { int a[i-1],k; if(i==1) a[0]=j; else if(i==2) { a[0]=j/10; a[1]=j%10; } else if(i==3) { a[0]=j/100; a[1]=j%100/10; a[2]=j%10; } else if(i==4) { a[0]=j/1000; a[1]=j%1000/100; a[2]=j%100/10; a[3]=j%10; } else { a[0]=j/10000; a[1]=j%10000/1000; a[2]=j%1000/100; a[3]=j%100/10; a[4]=j%10; } for(k=0;k<i;k++) printf("%d\t",a[k]); } // 输入数据每一位数,然后按倒序排列 void reverse(int i,int j)//位数,输入数据 { int a[i-1],k,t; if(i==1) a[0]=j; else if(i==2) { a[0]=j/10; a[1]=j%10; } else if(i==3) { a[0]=j/100; a[1]=j%100/10; a[2]=j%10; } else if(i==4) { a[0]=j/1000; a[1]=j%1000/100; a[2]=j%100/10; a[3]=j%10; } else { a[0]=j/10000; a[1]=j%10000/1000; a[2]=j%1000/100; a[3]=j%100/10; a[4]=j%10; } for(k=0;k<(i/2);k++) { t=a[k]; a[k]=a[i-k-1]; a[i-k-1]=t; } for(k=0;k<i;k++) printf("%d",a[k]); }
0.0分
21 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复