将一个数的每一位逆序输出

将一个数的每一位逆序输出

首先需要一个变量来存储这个数

int n;
scanf("%d", &n);

然后要得到这个数的每一位,
而且要先输出个位,然后输出十位,然后输出百位……
我们考虑使用循环,

int i;
for (i = 1; i <= n; i *= 10)
printf("%d ", n / i % 10);

把i的初值定为1
然后进入第一次循环,也就是n / 1 % 10,也就是n % 10,得到个位,
第二次循环n / 10 % 10可以得到十位,因为整型数据之间相除结果向下取整,
假如n是123,则 123 / 10之后的结果是12,然后用12 % 10就可以得到十位2了,
第三次循环求得百位
……
然后以此类推,一直到最位。

综上所述

#include <stdio.h>
int main(void)
{
int n;
scanf("%d", &n);
int i;
for (i = 1; i <= n; i *= 10)
printf("%d ", n / i % 10); //第一次得到个位,第二次得到十位,第三次得到百位……
return 0;
}

也可以使用递归的方法来解决这个问题

void inversion(int n)
{
if (n != 0) //n一直除以10,直到为0时不满足条件。
{
printf("%d", n % 10); //得到数的最后一位
inversion(n / 10); //每次让n/10,然后n%10得到最后一位
}
else
return;
}

#include <stdio.h>
void inversion(int n);
int main(void)
{
int n;
scanf("%d", &n);
inversion(n);
return 0;
}
void inversion(int n)
{
if (n != 0) //n一直除以10,直到为0时不满足条件。
{
printf("%d", n % 10); //得到数的最后一位
inversion(n / 10); //每次让n/10,然后n%10得到最后一位
}
else
return;
}

递归过程简要分析
分析

posted @   codels  阅读(171)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示