在学习c语言的过程中,我们有时会碰到需要将一个数进行逆序输出,比较常规的办法是将元素储存在数组中并借助循环将其倒序,考虑到许多初学者还未学习到数组的板块,这里介绍一个新的方法,就是创建一个函数,而且使用起来非常的简单!
首先来看一下函数的代码:
int reverse_order(int x)
{
int reverse_order = x % 10;
x = x / 10;
while (x) {
reverse_order = reverse_order * 10;
reverse_order = reverse_order + (x % 10);
x = x / 10;
}
return reverse_order;
}
reverse函数是比较后面的内容,初学者可以暂时不去深究,只用理解它的用法即可
PS:reverse后面的只是函数的名称,用来区分用的,在创建时也可以简短一点,比如reverse1
比如说我们想输出一个整数m的倒序数字,那么只需要在printf("%d",m);中的m换成reverse(m)即可
我们现在来看一个简单的例子:
请将872,18724,10000倒序输出
代码如下:
#include <stdio.h>
int reverse1(int x)
{
int reverse1 = x % 10;
x = x / 10;
while (x) {
reverse1 = reverse1 * 10;
reverse1 = reverse1 + (x % 10);
x = x / 10;
}
return reverse1;
}
int main()
{
int a;
scanf("%d",&a);
printf("%d",reverse1(a));
return 0;
}
这里要特别注意,如果数字的末位是0,那么在倒序输出时就会将0给去除!!
现在我们来讲解一下这个函数,首先我们要先知道一件事情,就是在c语言里面,0为假,其余都为真,如果出现了while(m)(m!=0)的情况,则表示一定会进入这个循环,如果出现while(0)的情况,则终止循环。
现在我们以123这个数为例。
reverse1是一个整形变量,一开始赋值给它的就是3
然后我们将123除以10拿到了12,while(12)为真,进入循环。
首先执行第一步,3乘以10变成了30
再执行第二步,30加上12余10变成了32
最后是第三步,12/10剩下一个1,1为真,所以继续循环
到了第二次循环,此时reverse1是32
第一步,乘以10变成了320
第二步,320加上了1%10,也就是1,变成了321,
第三步,1/10=0,此时0为假,所以就终止循环
最后return reverse1就将所输出的数归还给我们的变量
其他比较高位的数也是一个道理,这里就不多赘述了。
希望对大家有帮助!!!
PS:可以给个免费的赞吗