我正在解决 Stroustrup 书中的一个练习,我必须设计一个程序来猜测用户正在考虑的一个 1-100 之间的数字,例如“它是否小于 50?”。等等。我不能问超过 7 个问题才能得到答案。
到目前为止,我有这样的事情:
string answer;
cout << "Think of a number between 1 and 100.\n";
cout << "Is it even or odd? (E/O)\n";
cin >> answer;
if (answer == "E")
{
cout << "Is it less than 50? (Y/N)\n";
cin >> answer;
if (answer == "Y")
{
cout << "Is it less than 25? (Y/N)\n";
cin >> answer;
if (answer == "Y")
{
cout << "Is it less than 15? (Y/N)\n";
cin >> answer;
if (answer == "Y")
{
cout << "Is it less than 9? (Y/N)\n";
cin >> answer;
if (answer == "Y")
{
cout << "Is it less than 5? (Y/N)\n";
cin >> answer;
if (answer == "Y")
{
cout << "Is it less than 3? (Y/N)\n";
cin >> answer;
if (answer == "Y")
{
cout << "Your number is 2.";
}
}
}
}
}
}
}
我觉得这真的很糟糕,因为我只有一个流程图的路径,而且这个程序已经很长了。有没有更有效的方法来做到这一点?