Я задаю число,а компьютер должен угадать. Но когда компьютер угадает число, программа не выводить строку угадания
#include <cstdlib>
#include <ctime>
using namespace std;
int main(){
srand(static_cast<unsigned int>(time(0))); //Launching of generator of random numbers
int tries = 0;
int pick;
cout<<"\tWelcome to Pick Number\n\n";
cout<<"Enter a pick: ";
cin>>pick;
int secret;
secret = rand() % 100 +1; //random number in a diapason between 1 and 100
int secret1;
int secret2;
do{
cout <<"\nComputer thinking about: " <<secret <<"\n";
++tries;
if(pick<secret){
cout<<"Computer's guesses are too high!\n";
secret1 = secret;
secret = 1+rand() % (secret1-1+1); //random number in a diapason between 1 and 100
}
else if(pick>secret){
cout<<"Computer's guesses are too low!\n";
secret2 = secret;
secret = secret2 + rand() % (100-secret2+1); //random number in a diapason between 1 and 100
}
else if(pick == secret) {
cout<<"\nThat's it! Computer got it in " <<tries <<" guesses!\n";
}
}while(pick != secret);
return 0;
}
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Есть у меня подозрение, что на самом деле вы хотели вот это, но не смогли пояснить:
#include <cstdlib>
#include <ctime>
#include <iostream>
using namespace std;
int main()
{
srand(time(0));
int tries = 0;
int pick;
cout << "\tWelcome to Pick Number\n\n";
cout << "Enter a pick: ";
cin >> pick;
for(int secret = -1, secretHigh = 100, secretLow = 0;secret != pick;)
{
secret = secretLow + rand() % (secretHigh-secretLow+1);
cout << "\nComputer thinking about: " << secret << "\n";
++tries;
if (pick < secret)
{
cout << "Computer's guesses are too high!\n";
secretHigh = secret-1;
}
else if (pick > secret)
{
cout << "Computer's guesses are too low!\n";
secretLow = secret+1;
}
else
{
cout << "\nThat's it! Computer got it in " << tries << " guesses!\n";
}
}
}