解题思路:首先分3步,第一步用while循环来获取位数

第2步用递归来进行正序输出

第3步用for循环,在这之前,你需要明白个位数是num/10的0次方,接着在%10取到我们所需要的位数,比如987除10的次方等于987接着%10得到7,以此类推百位数也是这种操作

注意事项:因为咱们需要用pow(x,y),故引入#include

#include

#include


void  aw(int n)

   {

    if(n>9)

   {

    aw(n/10);

   }

    printf("%d ",n%10);

   

   

   }//第2步递归

   int main()

{

  int c=0,b;

  int d=0;

  scanf("%d",&c);// 输入一个数

  b=c;  //将c赋值给b是为了保留c的值,因为后面循环用了c,c的值会变

  while(c!=0){

 

  c=c/10;

  d++;

  

  }        //求得位数

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

  aw(b);      //输出正序值

  printf("\n"); 

  for(int e=0;e<d;e++){

 

  int g=b/pow(10,e);

  printf("%d",g%10);

  }         //输出逆序值

  

    return 0;

}


点赞(0)
 

0.0分

0 人评分

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

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

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

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

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

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

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

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

评论列表 共有 0 条评论

暂无评论