原题链接:[编程入门]数字的处理与判断
解题思路:首先应该判断输入的数字是否在条件范围内,如果超出范围需要设置相应程序进行重新输入,然后在判断知道输入正确为止。
其次应该分清程序所要实现的功能,然后一个一个的实现(此题中为 : 判断输入数字为几位数 ; 分别显示每一位的具体数字;将数字的每一位倒序排列 )
简单的功能我直接在主程序中实现了(不规范行为嗷,后面两个功能的话,我设置了对应的函数(啊,其实就是把第一个函数照搬过来,然后就是 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、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
//数字的处理与判断 #include<stdio.h> int main() { int x,a[10],p,s=0; scanf("%5d",&x); p=x; while (x!=0) { a[s] = x%10; x/= 10; s++; } printf("%d\n",s); for (int i=s;i!=0;i--) { printf("%d ",a[i-1]); } printf("\n"); for (i=0;i!=s;i++) { printf("%d",a[i]); } }#include<stdio.h> #include<math.h> int main() { int x,i,j,a=0,temp; int aa[10]={0}; scanf("%d",&x); for(i=10;i>0;i--) { j=pow(10,i); if(x/j) { a=i+1;break; } } printf("%d\n",a); temp=x; for(i=0;i<a;i++) { aa[i]=temp%10; temp=temp/10; } for(i=a-1;i>=0;i--) { printf("%d ",aa[i]); } printf("\n"); for(i=0;i<a;i++) { printf("%d",aa[i]); } return 0; }