原题链接:[编程入门]数字的处理与判断
解题思路:
题目中已经说是一个不多于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、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复