私は、C++ を使用したテキストの原則と実践でいくつかの質問に取り組んでおり、問題が発生している特定の質問は次のとおりです。ユーザーは 1 から 100 までの数字を考える必要があり、コンピューターは一連の推測によって質問が何であるかを判断します。
現在のコードは、数値 1 を除いて機能します (2 で割るときに整数が切り捨てられるため)。これを修正する方法が思いつかないようです。
現在のソースコードは次のとおりです。
#include <iostream>
using namespace std;
const int MAX_VALUE = 100;
const int MIN_VALUE = 1;
int guess;
int high = MAX_VALUE;
int low = MIN_VALUE;
char choice;
int main(){
cout<<"Think about a number between "<<MIN_VALUE<<" and "<<MAX_VALUE<<". \n\n";
guess = ( high-low ) / 2;
while((high-low)!=1){
cout<<"Is your number less than or equal to "<<guess<<"? \nEnter y or n. \n\n";
cin>>choice;
if(choice=='y' || choice=='Y') {
high = guess;
guess -= ( high - low ) / 2;
}
else if(choice=='n' || choice=='N') {
low = guess;
guess += (high - low ) /2;
}
else cout<<"Incorrect choice."<<endl;
}
cout<<"Your number is: "<<high<<".\n";
system("pause");
return 0;
}