这个问题是我在做学校的作业时候看到的。只隐约有印象讲过,但是忘记了怎么操作。听同学的点通才回想起来,特此写个博客留记
逆序打印
目的:输入“789”,打印“987”
注:本博客的数字逆序只涉及 十进制
代码实现有两种方式: 1.利用if语句进行大小判断,直到选出从大到小的数字排序 这个方法十分复杂,稍不留意就会弄错,所以在实际应用中不推荐这样操作 这里就不赘述具体代码了。(才不是懒,压根没试过) 2.使用%10的方法直接打印 代码如下:
#include <stdio.h>
int main()
{
int a = 0;
scanf("%d", &a);
printf("%d", a % 10);
printf("%d", a/10 % 10);
printf("%d", a/100 % 10);
return 0;
}
代码结果如下 这个代码成功达到了我们的目的,但是有一个比较明显的弊端 如果我们需要更多位的数字的逆序数时,这个代码就会变得很长,而且每次都需要我们手动添加一个新的printf
代码优化
想要逆序比较长的数字,就需要用到循环语句,我使用的是for循环 主要需要解决的问题是,a每%10一次后就需要除以10再%10一次
#include <stdio.h>
int main()
{
int a = 0;
int n = 0;
int i = 0;
printf("请输入需要逆序的数字:");
scanf("%d", &a);
printf("请输入该数字的位数:");
scanf("%d", &n);
for (i = 0; i < n; i++)
{
printf("%d", a % 10);
a /= 10;
}
return 0;
}
代码运行结果如下 我们的目的成功达成!
希望这对你有帮助!
|