C编程“数字反转”

时间:2017-10-31 23:29:26

标签: c

我有一个用于c编程的小型简单学校项目。我应该写一个数字,然后反过来,我无法理解这段代码是如何工作的。所以,我需要有人向我解释while循环中发生了什么,以及为什么我们使用这些操作,什么是%10?

谢谢!

/* Reverse number using while loop */

#include<stdio.h>
int main()
{
    int num, reverse=0;
    scanf("%d",&num);
    while(num > 0)
    {
        reverse= reverse*10;
        reverse = reverse + (num%10);
        num = num/10;
    }
    printf("%d",reverse);
    return 0;
}

2 个答案:

答案 0 :(得分:0)

'while loop'重复输入的数字。

'num%10'表示num的余数除以10.这是知道最后数字的过程。

例如,如果输入'123',则while循环将重复3次。

第一步,反向 - &gt; 3,num - &gt; 12

第二,反向 - &gt; 30 - &gt; 32,num - &gt; 1

第三,反向 - &gt; 320 - &gt; 321,num - &gt; 0

因此你可以得到相反的数字!

答案 1 :(得分:0)

在您的代码中while循环是输入数字的数字被反转并存储为另一个数字的地方 - reverse。为此,需要首先访问原始号码的最后一位数字。 %模运算符返回除法的余数。由于您将原始数字除以10,因此得到它的最后一位数,即余数。我们需要将该数字存储为反转数字中的第一个,并且albo以某种方式获得原始数字的下一个数字。要存储连续数字,您将当前存在的反转数字乘以10并添加下一个数字。这样你就可以在reverse的右边添加下一个数字,最后,在添加所有数字之后,获得完整的反转数字。获取原始数字的下一个数字使用除法/运算符的属性,该运算符保留除法的商。当除以10时,它“切断”给定数字的最后一位数。这也解释了while循环中的条件:当您的数字变为0时,表示您已经完成了所有数字。