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

O que eu faria para invalidar, caso o usuário usa-se uma letra?

Como faço para dizer e invalidar caso o usuário use letras

#include <stdio.h>

#define NUMERO_DE_TENTATIVA 5

int main(){

    //imprime cabeçalho do jogo.
    printf("************************************\n");
    printf("* Bem-vindo ao jogo de adivinhação *\n");
    printf("************************************\n\n");

    for (int i = 1; i <= NUMERO_DE_TENTATIVA; i++)
    {
        printf("Tentativa %d de %d\n",i,NUMERO_DE_TENTATIVA);

        int chute;
        int numerosegredo = 42;

        printf("Qual é o seu chute? ");
        scanf("%d", &chute);

        if (chute < 0 )
        {
            printf("Você não pode chutar números negativos.\n");
            i--;
            continue;
        }

        int acertou = (chute == numerosegredo);
        int maior = (chute < numerosegredo);

        if(acertou) {
            printf("\nParabéns! Você acertou o número segredo!\n");
            printf("Jogue de novo, você é um ótimo jogador!\n");
            break;
        }
        if(maior) {
            printf("Seu chute foi menor que o número segredo.\n\n");
        }else {
            printf("Seu chute foi maior que o número segredo.\n\n");
        }
    }
    printf("\nFim do jogo\n");
}
2 respostas
solução!

Olá. Pedro tudo bem?

Nesse primeiro momento podemos utilizar o retorno do scanf: Quando pegamos o que o usuário digitou, a nossa função retorna 1 se deu tudo certo, então podemos fazer a seguinte verificação:

printf("Qual é o seu chute? ");
        if(scanf("%d", &chute) != 1) {
            printf("Você não digitou um número");
            break;
        }

Se o usuário digitar qualquer coisa diferente de um número, teremos um valor diferente de 1 no retorno, e podemos parar a execução do programa

Exemplo:

************************************
* Bem-vindo ao jogo de adivinhação *
************************************

Tentativa 1 de 5
Qual é o seu chute? 30
Seu chute foi menor que o número segredo.

Tentativa 2 de 5
Qual é o seu chute? X     
Você não digitou um número
Fim do jogo

Compreendeu?

Abraços e Bons Estudos!

Obrigado pela resposta.