解题思路:





注意事项:





参考代码:

#include<stdio.h>

int main()
{
   int x;
   int cnt=1;/*记录位数 */    

    int mark=1;     //用在正序输出的循环中
   int digit=0,digit2=0;      /*记录分解的每一位数*/

   scanf("%d",&x);


   int temp=x,tmp=x;      //temp和tmp分别用在统计位数和正序输出,保证读入的x不被消耗
   while(temp>9)        //该循环统计位数
   {
       temp/=10;
       cnt++;
       mark*=10;
   }
   printf("%d\n",cnt);     //打印位数

  while(mark>0)    //正序输出
  {
      digit=tmp/mark;
      printf("%d",digit);
      if(mark>9)       //改行保证最后不输出空格
      {printf(" ");}
      tmp%=mark;
      mark/=10;
  }

    printf("\n");  //打印回车,满足题意


    if(x==0)
        printf("%d",x);
    while(x>0)    //该循环用来逆序输出
    {
        digit2=x%10;
        printf("%d",digit2);
        x/=10;

    }
    return 0;
}


点赞(0)
 

0.0分

0 人评分

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

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

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

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

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

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

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

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

评论列表 共有 0 条评论

暂无评论