解题思路:列举:当数为1时,只用找出几位数,用if即可。

当数为12时,先找出几位数,用if来找;再找出其中的1和2并输出,即12/10就是第一个要输出的值,12-12/10*10就是第二个要输出的值。因为12/10之后为1,然后再*10就是10了,12-10当然为第二个数了,然后再输出。三位数,四位数,五位数同理。


注意事项:我这只用了if的用法,a[10]就是定了十个a,相当于定了a,b,c,d,e,f,g,h,i,j十个变量。

参考代码:

#include<stdio.h>


int main()

{

    int a[10]; //这里我先定了十个变量a

    scanf("%d",&a[0]);

    if(a[0]>0 && a[0]<10)

    {

    printf("1\n%d\n%d\n",a[0],a[0]);

    }

    if(a[0]>10 && a[0]<100)

    {

    a[1]=a[0]/10;

    a[2]=a[0]-a[1]*10;

    printf("2\n%d %d\n",a[1],a[2]);

    printf("%d%d\n",a[2],a[1]);

    }

    if(a[0]>100 && a[0]<1000)

    {

    a[1]=a[0]/100;

    a[2]=a[0]-a[1]*100;

    a[3]=a[2]/10;

    a[4]=a[2]-a[2]/10*10;

    printf("3\n%d %d %d\n",a[1],a[3],a[4]);

    printf("%d%d%d\n",a[4],a[3],a[1]);

    }

    if(a[0]>1000 && a[0]<10000)

    {

    a[1]=a[0]/1000;

    a[2]=a[0]-a[1]*1000;

    a[3]=a[2]/100;

    a[4]=a[2]-a[3]*100;

    a[5]=a[4]/10;

    a[6]=a[4]-a[5]*10;

    printf("4\n%d %d %d %d\n",a[1],a[3],a[5],a[6]);

    printf("%d%d%d%d\n",a[6],a[5],a[3],a[1]);

    }

    if(a[0]>10000 && a[0]<100000)

    {

    a[1]=a[0]/10000;

    a[2]=a[0]-a[1]*10000;

    a[3]=a[2]/1000;

    a[4]=a[2]-a[3]*1000;

    a[5]=a[4]/100;

    a[6]=a[4]-a[5]*100;

    a[7]=a[6]/10;

    a[8]=a[6]-a[7]*10;

    printf("5\n%d %d %d %d %d\n",a[1],a[3],a[5],a[7],a[8]);

    printf("%d%d%d%d%d\n",a[8],a[7],a[5],a[3],a[1]);

    }

    return 0;

}

点赞(2)
 

0.0分

2 人评分

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

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

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

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

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

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

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

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

评论列表 共有 1 条评论

insomnia 5年前 回复TA
方便交流吗。,我还是看不懂啊, 大佬。