解题思路:

通过多个while语句进行数据的拆解



注意事项:
1.本程序是初级阶段代码,仅供理解;
2.思路不要局限于本程序,如正向输出一个整数的单个数字,也可使用递归函数(自行百度);
3.每个人都有不同的想法,没准你的想法也是对的哦!所以要努力解决自己的问题,不要放弃呐!


参考代码:

int num,i=0,tmp,tmp1,num1=0,tmp2=0;

    scanf("%d",&num); //获取整数

    tmp=num;     //保存输入的值

    while(num!=0){    //通过while循环检查数字个数

        num=num/10;        // 除运算将数据的最后一位移除,直至最后一位为0;

        i++;

    }

    printf("%d\n",i);

    num=tmp;        //将保存的值重新赋值给输入变量

    while(num!=0){

        tmp2=tmp2*10+num%10;    //实现对输入值得逆向重组。

        num=num/10;        //将数据的最后一位移除

    }

    num=tmp2;            //经过上面的while循环得到tmp2的只是逆向重组的值

    while(num!=0){            //将重组后的值逆向单个输出

        tmp1=num%10;

        num=num/10;

        printf("%d",tmp1);        //输出每次取余的结果

        if(num!=0)           //题目要求:最后一个数字后面没有空格

        printf(" ");


    }

    printf("\n");

    while(tmp!=0){

        num1=num1*10+tmp%10;        //同上,再写一遍,是因为要符合题目格式要求

        tmp=tmp/10;

    }

    printf("%d",num1);


点赞(1)
 

0.0分

1 人评分

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

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

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

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

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

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

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

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

评论列表 共有 0 条评论

暂无评论