У меня есть домашнее задание написать программу, которая угадывает мой номер, но я должен сделать это без ввода номера. Только y/n вопрос. Вот мой код до сих пор, но он работает неправильно. Например, он не может угадать цифры 24,50 и 75. Она работает и работает вниз правильно с вводом номера, но не может понять, как сделать это без него, поэтому, пожалуйста, дайте мне несколько советов :)Угадайте мой номер! C++
#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;
}
Вы получаете ошибки компилятора или ошибки компоновщика или запускаете? Это крушение? Какой результат вы видите, и какой результат вы ожидаете увидеть? Как мы можем исправить ваш код, если вы не скажете нам, что случилось? –
Угадайте мой номер? Hm, 'printf (" 42 ");' кажется разумной реализацией. – 2013-03-20 17:18:58
почему так много -? Oo – fviktor99