No programa que eu construi, declarei as variáveis primeiro na main, const int, int e bool antes do laço while. porém quando fiz dessa forma, o cout do if declara sempre a mesma sainda, sendo menor ou maior ele falava o mesmo da primeira tentativa. quando eu declarei dentro do while da forma como o professor fez rodou normal, não entendi a causa dele não rodar com as declarações fora do while.
Programa que fiz:
#include <iostream>
using namespace std;
int main(){
const int NUMERO_SECRETO = 42;
int chute=0;
bool acertou = chute == NUMERO_SECRETO;
bool maior = chute > NUMERO_SECRETO;
bool NAO_ACERTOU= true;
cout <<"*********************************" << endl;
cout <<"Bem-vindos ao jogo da adivinhacao" << endl;
cout <<"*********************************" << endl;
while (NAO_ACERTOU)
{
cout << "Qual o seu chute?" << endl;
cin >> chute;
cout <<"O valor do chute eh: "<< chute << endl;
if (acertou)
{
cout<< "Voce acertou, parabens!!" <<endl;
NAO_ACERTOU = false;
}
else if (maior)
{
cout<< "O numero que voce chutou e maior que o numero secreto" <<endl;
}
else
{
cout<< "O numero que voce chutou eh menor" <<endl;
}
}
system("pause");
return 0;
}
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx O programa que rodou normal:
#include <iostream>
using namespace std;
int main(){
const int NUMERO_SECRETO = 42;
bool NAO_ACERTOU= true;
cout <<"*********************************" << endl;
cout <<"Bem-vindos ao jogo da adivinhacao" << endl;
cout <<"*********************************" << endl;
while (NAO_ACERTOU)
{
int chute;
cout << "Qual o seu chute?" << endl;
cin >> chute;
cout <<"O valor do chute eh: "<< chute << endl;
bool acertou = chute == NUMERO_SECRETO;
bool maior = chute > NUMERO_SECRETO;
if (acertou)
{
cout<< "Voce acertou, parabens!!" <<endl;
NAO_ACERTOU = false;
}
else if (maior)
{
cout<< "O numero que voce chutou e maior que o numero secreto" <<endl;
}
else
{
cout<< "O numero que voce chutou eh menor" <<endl;
}
}
system("pause");
return 0;
}