解题思路:
C语言中整形之间的除法会舍去小数返回一个整型。
今天就用简单的方法来应对复杂的问题。
首先我们用if来判断数字的长度,三位数肯定大于99,四位数肯定大于999。。。(以此类推)
确认了数的长度后,我们通过除法来判断每一位的值。
比如98这个数,用98/10,就会返回一个整型9.然后其他的数位也以此类推。
最后把得到的数按照题目要求一一输出即可。
注意事项:
参考代码:
#include<stdio.h>
#include<math.h>
int main()
{
int a,a1,a2,a3,a4,a5;
scanf("%d",&a);
if(a>9999)
{
printf("5\n");
a1=a/10000;
a2=(a-a1*10000)/1000;
a3=(a-a1*10000-a2*1000)/100;
a4=(a-a1*10000-a2*1000-a3*100)/10;
a5=(a-a1*10000-a2*1000-a3*100-a4*10);
printf("%d ",a1);
printf("%d ",a2);
printf("%d ",a3);
printf("%d ",a4);
printf("%d ",a5);
printf("\n%d%d%d%d%d",a5,a4,a3,a2,a1);
}
else if(a>999)
{
printf("4\n");
a1=a/1000;
a2=(a-a1*1000)/100;
a3=(a-a1*1000-a2*100)/10;
a4=(a-a1*1000-a2*100-a3*10);
printf("%d ",a1);
printf("%d ",a2);
printf("%d ",a3);
printf("%d ",a4);
printf("\n%d%d%d%d",a4,a3,a2,a1);
}
else if(a>99)
{
printf("3\n");
a1=a/100;
a2=(a-a1*100)/10;
a3=(a-a1*100-a2*10);
printf("%d ",a1);
printf("%d ",a2);
printf("%d ",a3);
printf("\n%d%d%d",a3,a2,a1);
}
else if(a>9)
{
printf("2\n");
a1=a/10;
a2=(a-a1*10);
printf("%d ",a1);
printf("%d ",a2);
printf("\n%d%d",a2,a1);
}
else
{
printf("1\n");
printf("%d ",a);
printf("\n%d",a2,a1);
}
return 0;
}
0.0分
1 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复