循环时无限“真实”

时间:2011-07-23 05:49:35

标签: c++ loops infinite-loop

我知道我可能只是做了一些愚蠢的错误,但是我需要从用户那里得到一个数字,创建一个无限循环(通过使我的while语句为真)为2的倍数。我得到了数学乘以数字从用户时间本身,但我不能让它循环。这是我本周作业的最后一部分,我的大脑是油炸的,所以我无法弄清楚我哪里出错了!

任何帮助都会很棒!这就是我所拥有的:

#include <iostream>

using namespace std;

int main (int argc, const char * argv[])
{
    int d;
    int e;
    cin >> d;
    while (true)
    {
        e = d * d;
    }
        cout << e << ", ";
}

3 个答案:

答案 0 :(得分:4)

如上所述,您的代码将永远循环,因此,它永远不会到达那个cout语句。也许你想把cout语句放在循环体内,以便变量被打印出来?

答案 1 :(得分:4)

无法访问的代码位于:cout << e << ", "; 也许这是为了进入while循环?

您一遍又一遍地为e分配d*d的值。由于d*d不会更改,因此e的值永远不会更改。也许您应该将e初始化为循环外的数字,然后在循环内设置e = e * 2,然后打印e。这将以2的连续幂打印您的数字的倍数,这是我认为你想要的。

答案 2 :(得分:0)

可能的解决方案之一:

int main (int argc, const char * argv[])
{
    int d;
    int e = 2;
    cin >> d;
    while (d>0)
    {
       cout << e << ", ";

       e = e * 2;
       d--;
    }
}