了解使用循环的数字反转

时间:2013-12-09 18:17:27

标签: c loops

我在c编程中进入了这个简单的程序,该程序只是通过用户使用while循环来反转任何输入数字,我不知道是否可以发布这样的问题,但我并没有真正了解while循环是如何工作的

int n, reverse = 0;

   printf("Enter a number to reverse\n");
   scanf("%d",&n);

   while (n != 0)
   {
      reverse = reverse * 10;
      reverse = reverse + n%10;
      n = n/10;
   }

   printf("Reverse of entered number is = %d\n", reverse);
如果有人能向我解释,我会非常感激

1 个答案:

答案 0 :(得分:0)

while(condition is true)
{
    // Do stuff.
    // Normally, but not always, the "stuff" we're doing is something that modifies
    // the condition we're checking.
}

因此,只要n的内容不等于0,您就会继续执行循环。如果在0中输入scanf(),则会完全跳过循环。

在循环的每次迭代中,你使用整数除法的属性使n的值减小10倍。即:

n = 541
n = n / 10 = 541/10 = 54
n = n / 10 = 54/10  = 5
n = n / 10 = 5/10   = 0 

因此n最终将为0并且循环将退出。