Почему моя программа отображает вывод несколько раз - PullRequest
0 голосов
/ 14 марта 2019

Может кто-нибудь помочь мне исправить этот код.Мне нужно, чтобы мой вывод отображал неверные значения при вводе значения, равного или меньшего нуля. Однако на выходе отображаются сотни строк.Я нашел несколько примеров добавления (++;) к значению, чтобы решить эту проблему.но, если я использую ++, вывод выводит (недопустимое число и число-несколько раз. Если я изменяю на - вывод снова выводит недопустимое значение сотни раз.

Спасибо за вашу помощь

#include <iostream>

using namespace std;
int main()
{
    int c0 ;

    cout << " Enter a non negative number greater than 0: ";
    cin >> c0;


    while (c0 != 1)
        //if number is odd  i divide it by 2 i have a remainded of 1
        //if number is even i divide it by 2 i have a remainded of 0

    {

        if (c0 % 2 == 1)

            c0 = (3 * c0) + 1;

         if (c0 <= 0)
        {
            cout << "Invalid value input " ;

        }

        else 
            c0 /= 2;

        cout << c0 << '\n';

    }
}

1 Ответ

0 голосов
/ 14 марта 2019

Это очень просто, вы отображаете число несколько раз, потому что вы помещаете cout << "Invalid value input " ; в цикл.Если вы поместите это перед циклом, оно будет отображаться только один раз.

cout << " Enter a non negative number greater than 0: ";
cin >> c0;
if (c0 <= 0)
{
        cout << "Invalid value input " ;
}
while (c0 != 1)
{
   ...
}

Следующее, о чем нужно подумать, это то, что вы хотите сделать, когда пользователь вводит недопустимое число.Вы хотите прервать программу?Хотите снова спросить пользователя?В настоящий момент программа будет продолжаться, как будто ничего не произошло.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...