2
respostas

Não reconhece "acertou

¨ O programa não reconhece a condição do "acertou". Se digito 42 (o numero secreto) ele retorna que o numero digitado foi menor.

#include <stdio.h>
#include <locale.h>

int main(){
    //definindo o idioma para reconhecer acentuação
    setlocale(LC_ALL, "Portuguese");

    //o \n é o "enter"
    printf("________________________________\n");
    printf("Bem vindo ao jogo de adivihnação\n");
    printf("________________________________\n");

    //int numerosecreto = 42;
    //a máscara %d chama a variavel, no final especifica-la
    //printf("O número %d é o secreto.\n", numerosecreto);

    int chute;
    int numerosecreto = 42;
    int acertou = (chute == numerosecreto);

    printf("Qual o seu número?");
    scanf("%d", &chute);
    printf("Seu chute foi %d\n", chute);

    if(acertou){
        printf("Parabéns! Você acertou!\n");
        }
    else{
        int maior = (chute > numerosecreto);
        if(maior){
            printf("Seu chute foi maior que o numero secreto\n");
            }
        else{
            printf("Seu numero foi menor do que o numero secreto!\n");
        }
        printf("Tente novamente!");

    }
}
2 respostas

Olá Daniela, tudo bem?

Isso aconteceu porque você está verificando a igualdade antes de atribuir um valor com o scanf, vou simular o que está acontencedo:

  • Seu programa começa a rodar
  • O número secreto vai ser comparado com "nada" e portanto a variável acertou vai ser false
  • Pegamos o valor de chute
  • Vamos para o else do seu programa porque deu false a comparação if(acertou)
  • Como 42 não é maior que 42 ( valor do chute) também cai no else e ele diz que o número é menor

Para corrigir isso basta colocar a linha:

int acertou = (chute == numerosecreto);

Após escanear os valores:

    printf("Qual o seu número?");
    scanf("%d", &chute);
    printf("Seu chute foi %d\n", chute);
    int acertou = (chute == numerosecreto);

Agora ele irá calcular o valor de acertou apenas depois de saber quanto vale o chute :)

Abraços e Bons Estudos!

Entendii! Muito obrigada =)