私の番号を推測するプログラムを書く宿題がありますが、番号入力なしでやらなければなりません。y/n の質問のみ。これまでの私のコードですが、正しく動作していません。たとえば、24、50、および 75 の数字を推測することはできません。数値入力でちゃんと動きますが、数値入力なしではどうすればいいのかわからないので、コツを教えてください :)
#include <iostream>
using namespace std;
int main()
{
cout << "Think of a number 1-100!!\n";
bool l=false;
int min=0;
int max=100;
int ind;
int h;
char answer;
int tries=0;
do
{
ind=(min+max)/2;
cout << "Is your number bigger than " << ind << "? (y/n): "; cin >> answer;
if(answer=='y')
{
h=ind+(ind/2);
}
else
{
h=ind-(ind/2);
}
tries++;
if(ind>h)
{
max=ind-1;
//cout << "ind: " << ind << endl;
//cout << "h: " << h << endl;
}
else if(ind<h)
{
min=ind+1;
//cout << "ind: " << ind << endl;
//cout << "h: " << h << endl;
}
else if(ind=h)
{
l=true;
//cout << "ind: " << ind << endl;
//cout << "h: " << h << endl;
cout << h << " is your number!\nWow I guessed it in " << tries << " tries!\nPat me!";
}
}while(!l && min<=max);
return 0;
}