Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Número informado não obedece à condição.

Fiz a declaração de variáveis previamente, mas no momento da execução o terminal me informa sempre que meu input, seja ele maior, menor ou o número secreto é sempre "Seu chute foi maior que o numero secreto!".

#include<iostream>

using namespace std;

int main (){ cout << "" << endl; cout << "* Bem-vindos ao jogo da adivinhaçao! *" << endl; cout << "" << endl;

int numero_secreto = 42;
cout << "O numero secreto e " << numero_secreto << ". Nao conte para ninguem!" << endl;

int chute;
bool acertou = chute == numero_secreto;
bool maior = chute > numero_secreto;

cout << "Qual o seu chute?";
cin >> chute;
cout << "O valor do seu chute e:" << chute << endl;

if (acertou){
    cout << "Parabens! Você acertou o numero secreto!" << endl;
}

else if (maior){
    cout << "Seu chute foi maior que o numero secreto!" << endl;
}

else {
    cout << "Seu chute foi menor que numero secreto!" << endl;
}

}

2 respostas
solução!

Olá, João Gabriel! O problema está na ordem em que você está fazendo as coisas. Você está verificando se o chute é igual ao número secreto e se é maior antes de receber o valor do chute. Isso faz com que o programa sempre considere o valor inicial de chute (que é indefinido, pois não foi inicializado), em vez do valor que o usuário inseriu.

Aqui está a correção:

#include<iostream>
using namespace std;

int main (){ 
    cout << "* Bem-vindos ao jogo da adivinhaçao! *" << endl;

    int numero_secreto = 42;
    cout << "O numero secreto e " << numero_secreto << ". Nao conte para ninguem!" << endl;

    int chute;
    cout << "Qual o seu chute?";
    cin >> chute;
    cout << "O valor do seu chute e:" << chute << endl;

    bool acertou = chute == numero_secreto;
    bool maior = chute > numero_secreto;

    if (acertou){
        cout << "Parabens! Você acertou o numero secreto!" << endl;
    }

    else if (maior){
        cout << "Seu chute foi maior que o numero secreto!" << endl;
    }

    else {
        cout << "Seu chute foi menor que numero secreto!" << endl;
    } 

    return 0;
}

Agora, o programa primeiro lê o valor do chute e, em seguida, verifica se ele é igual ou maior que o número secreto. Espero que isso ajude!

Entendi, muito obrigado!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software