82.1k views
2 votes
Write a program to have the computer guess at a number between 1 and 20. This program has you, the user choose a number between 1 and 20. Then I, the computer will try to my best to guess the number. Is it a 18? (y/n) n Higher or Lower (h/l) l Is it a 5?(y/n) n Higher or Lower (h/l) h Is it a 10? (y/n) y I got tour number of 10 in 3 guesses.

User Srf
by
7.7k points

1 Answer

2 votes

Answer:

This question is answered using C++ programming language.

#include<iostream>

#include <cstdlib>

#include <ctime>

using namespace std;

int main(){

int num, computerguess;

char response, hl;

cout<<"Choose your number: ";

cin>>num;

srand((unsigned) time(0));

int high = 20; int low = 1; int guess = 0;

computerguess = low + rand() % high;

cout<<"Is it "<<computerguess<<" ?y/n: ";

cin>>response;

while(response == 'n'){

cout<<"Higher or Lower? h/l: ";

cin>>hl;

if(hl == 'h'){ low = computerguess+1; }

else{ high = computerguess-1; }

guess++;

computerguess = low + rand() % high;

cout<<"Is it "<<computerguess<<" ?y/n: ";

cin>>response;

}

cout<<"I got your number of "<<num<<" in "<<guess+1<<" guesses.";

return 0;

}

Step-by-step explanation:

This declares num (user input) and computerguess as integer

int num, computerguess;

This declares response (which could be yes (y) or no (n) and hl (which represents high or low) as char

char response, hl;

This prompts user for input

cout<<"Choose your number: ";

This gets user input

cin>>num;

This allows the computer be able to generate different random numbers at different intervals

srand((unsigned) time(0));

This declares and initializes the range (high and low) to 20 and 1 respectively. Also, the initial number of guess is declared and initialized to 0

int high = 20; int low = 1; int guess = 0;

Here, the computer take a guess

computerguess = low + rand() % high;

This asks if the computer guess is right

cout<<"Is it "<<computerguess<<" ?y/n: ";

This gets user response (y or n)

cin>>response;

The following iteration is repeated until the computer guess is right

while(response == 'n'){

This asks if computer guess is high or low

cout<<"Higher or Lower? h/l: ";

This gets user response (h or l)

cin>>hl;

If the response is higher, this line gets the lower interval of the range

if(hl == 'h'){ low = computerguess+1; }

If the response is lower, this line gets the upper interval of the range

else{ high = computerguess-1; }

This increments the number of guess by 1

guess++;

Here, the computer take a guess

computerguess = low + rand() % high;

This asks if the computer guess is right

cout<<"Is it "<<computerguess<<" ?y/n: ";

This gets user response (y or n)

cin>>response; }

This prints the statistics of the guess

cout<<"I got your number of "<<num<<" in "<<guess+1<<" guesses.";

User Yonexbat
by
8.7k points

No related questions found