为什么我的程序多次显示输出

时间:2019-03-14 07:13:34

标签: c++ loops while-loop

有人可以帮助我修复此代码。输入等于或小于零的值时,我需要输出以显示无效值输入,但是,输出显示数百行。我发现一些示例在值中添加(++;)来解决此问题。但是,如果我使用++,输出将显示(多次无效和-number。如果更改为-,输出将再次显示无效值,输入数百次。

感谢您的帮助

#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 :(得分:0)

这很简单,因为将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)
{
   ...
}

接下来要考虑的是用户输入无效数字时要发生的情况。您要中止程序吗?您是否要再次询问用户?目前,该程序将继续运行,好像什么都没发生。