解题思路:

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.0分

1 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论