我有一个用于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;
}
答案 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时,表示您已经完成了所有数字。