【问题标题】:While loop won't continue虽然循环不会继续
【发布时间】:2016-10-23 20:13:22
【问题描述】:
int Day = 20;
while (Day >= 1)
{
   cout << Day << " ";
   userNum = Day / 2;
   cin >> Day;
}

我不明白为什么循环不起作用。我希望输出为20 10 5 2 1

任何帮助,如果可能的话,提供解释。

【问题讨论】:

  • 这段代码到底是什么意思? Day 等于 20,因此循环甚至不会开始,因为它等于 1。
  • 20 != 1 ... 也许您的意思是 `while (Day >= 1) ... 并删除循环头后的分号。
  • 对不起,任务的版本较旧,但仍然无法正常工作
  • 您将Day 除以2 分配给一个新变量,基本上保持Day 相同......然后你为什么在那之后cin &gt;&gt; Day?跨度>
  • cin 这里的目的是什么?

标签: c++ loops while-loop


【解决方案1】:

我不明白cin 的目的是什么,但是如果您想要问题中要求的输出:

// Example program
#include <iostream>
#include <string>

using std::cout;
using std::endl;

int main()
{
 int Day = 20;
  while (Day >= 1)
  {
    cout << Day << " ";
    Day /= 2;
  }
}

Date 达到 1 或小于 1 时,您会看到您停止。并且您将其反复除以 2。首先,它变成 20;然后你将它除以 2,它达到 10;然后你再除以2,它达到5;那么 5/2 是 2.5 但四舍五入为 2;然后2/2为1,最后退出程序。

Here 已编译。

【讨论】:

    【解决方案2】:

    试试这个

    int Day = 20;
    while (Day >= 1)
    {
        cout << Day << " ";
        Day = Day / 2;      
    }
    

    【讨论】:

      猜你喜欢
      • 2022-09-30
      • 2012-04-26
      • 1970-01-01
      • 1970-01-01
      • 2015-09-14
      • 1970-01-01
      • 2013-03-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多