记住 /10 这个方法!代码如下:

#include <stdio.h>

int main()
{
    int num; //要检测的数
    int rest[5]; //存放这个数的每一位的数字
    int i = 0;

    scanf("%d", &num);
    while (num != 0)
    {
        rest[i++] = num % 10; //将每一位存入数组
        num /= 10;
    }

    int j;
    printf("%d\n", i); //1 打印位数

    for (j = i - 1; j >= 0; j--) //2 顺序打印每位数 空格隔开 最后一个数字没有空格
    {
        if (j != 0)
            printf("%d ", rest[j]);
        else
            printf("%d", rest[j]);
    }
    printf("\n");

    for (j = 0; j < i; j++) //3 逆序打印该数
    {
        printf("%d", rest[j]);
    }
    printf("\n");

    return 0;
}


点赞(1)
 

0.0分

10 人评分

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

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

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

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

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

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

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

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

评论列表 共有 5 条评论

我来啦 5年前 回复TA
@我来啦 最后一个还是有空格,但还是过了!
我来啦 5年前 回复TA
#include <stdio.h>
#include <stdlib.h>

int main()
{
   int data[5]={0};
   int num;
   printf("请输入数字:");
   scanf("%d",&num);
   int i=0,j;
   int num1;
   while(num!=0){
       num1=num%10;
       data[i]=num1;
       i++;
       num=num/10;}
   printf("%d\n",i);
   for(j=4;j>=0;j--)
       printf("%d ",data[j]);
   printf("\n");
   for(i=0;i<5;i++)
       printf("%d",data[i]);
       printf(" ");
}
秋刀鱼的风 5年前 回复TA
@舒克先森 其实就是说明num一共有几位数,比如12345每次取余,那么第一次是5。rest这个数组元素就向上加一,之后下边除10,那么num就只剩1234了,以此来循环,直到最后一位
舒克先森 5年前 回复TA
请教一下
   rest[i++] = num%10;
这一句的实现过程是啥样的?他是怎么把每一位存入数组的?
123456789 5年前 回复TA
厉害啊,真的是简单易懂的答案,看了这么多的答案,就你这个适合我这种初学者。顶你!