Бесконечный «истинный» цикл while - PullRequest
3 голосов
/ 23 июля 2011

Я знаю, что, вероятно, просто делаю что-то глупое неправильно, но мне нужно взять число у пользователя, создать бесконечный цикл (сделав мое утверждение 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 ]

4 голосов
/ 23 июля 2011

Существует недоступный код по адресу: cout << e << ", "; Возможно, это должно было быть включено в цикл while?

Вы присваиваете e значение d*d снова и снова.Поскольку d*d не изменяется, значение e никогда не изменяется.Возможно, вам следует инициализировать e тем числом, которое вы хотите за пределами цикла, а затем установить e = e * 2 внутри цикла, а затем вывести e.Это напечатает кратные вашего числа последовательными степенями 2, что, как я думаю, вы хотите.

4 голосов
/ 23 июля 2011

Как написано, ваш код будет зацикливаться вечно, и в результате он никогда не попадет в этот оператор cout.Может быть, вы хотите поместить оператор cout в тело цикла, чтобы переменная выводилась на печать?

0 голосов
/ 23 июля 2011

Одно из возможных решений:

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

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