While循环:简单的除法程序输出零,不明白为什么

时间:2018-10-15 00:34:42

标签: c++ loops

DIRECTIONS:编写一个while循环,该循环打印将userNum除以2(整数除法)直到达到1。每个数字后跟一个空格。 userNum = 40的示例输出: 20 10 5 2 1

#include <iostream>
using namespace std;

int main() {
   int userNum;

   cin >> userNum;

   while (userNum >= 1) {
      userNum = userNum / 2;
      cout << userNum << " ";
   }

   cout << endl;

   return 0;
}

输出:(userNum = 40; 20 10 5 2 1 0)

2 个答案:

答案 0 :(得分:0)

在这一部分:

userNum = userNum / 2;
cout << userNum << " ";

userNum = 1(循环的最终迭代)时-1/2 = 0。

答案 1 :(得分:0)

您正在执行整数除法。 因此,截断后1/2 = 0.5将为0

通过阅读您的问题,似乎您不希望完成1/2的除法运算。

如果是这样,请检查while循环中的条件 将其设置为userNum> 1而不是userNum> = 1