Considere o código fonte escrito em C++ baseado em Deitel e Deitel (2017) e executado em https://www.onlinegdb. com/online_c++_compiler.
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
void guessGame();
bool isCorrect( int, int );
int main()
{
guessGame();
return 0;
}
void guessGame()
{
int answer;
int guess;
char response;
do {
answer = 1 + rand() % 1000;
cout << "Eu tenho um numero no intervalo entre 1 ate 1000.\n"
<< "Voce consegue adivinhar este numero?\n"
<< "Digite o seu primeiro palpite: ";
cin >> guess;
while ( !isCorrect( guess, answer ) )
cin >> guess;
cout << "\nParabens, voce acertou!\n"
<< "Gostaria de jogar novamente (s or n)? ";
cin >> response;
cout << endl;
} while ( response == 's' );
}
bool isCorrect( int g, int a )
{
if ( g == a)
return true;
if ( g < a )
cout << "Muito baixo. Digite o novo palpite: ";
else
cout << "Muito alto. Digite o novo palpite: ";
return false;
}
Fonte: DEITEL, Paul; DEITEL Harvey. C++ How to Program. 10. ed. Boston: Pearson, 2017.
Indique a sentença CORRETA:
Se o código for compilado e executado e o usuário digitar uma letra no primeiro prompt, o programa entrará em loop exibindo a mensagem “Muito baixo. Digite o novo palpite:”.
Se o código for compilado e executado e o usuário digitar o valor 1000000 no primeiro prompt, o programa apresentará a mensagem “Erro de estouro de índice”.
Há um erro no código fonte e, durante a compilação, o compilador o indicará próximo a bool isCorrect( int, int );.
Há um erro na lógica adotada, pois o código fonte não corresponde às mensagens apresentadas em tela para o usuário quando de sua execução. A correção deve ser realizada na linha que contém a instrução: while ( !isCorrect( guess, answer ) ).
A função rand() retorna números pseudoaleatórios entre 1 e o valor definido na constante RAND_MAX. Portanto, há um erro lógico no código fonte. Para o código fonte corresponder às mensagens apresentadas em tela para o usuário, o código answer = 1 + rand() % 1000; deve ser alterado para answer = rand() % 1000;