有人可以帮助我修复此代码。输入等于或小于零的值时,我需要输出以显示无效值输入,但是,输出显示数百行。我发现一些示例在值中添加(++;)来解决此问题。但是,如果我使用++,输出将显示(多次无效和-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';
}
}
答案 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)
{
...
}
接下来要考虑的是用户输入无效数字时要发生的情况。您要中止程序吗?您是否要再次询问用户?目前,该程序将继续运行,好像什么都没发生。