Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Função chuta

Acabei a quarta aula do curso de C II e segui todos os passos do professor, mas as letras inseridas continuam não aparecendo no lugar dos underscores. Não consigo achar o erro no código que faz ele não se comportar como o do instrutor no final da aula.

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

void abertura() {

    printf("\n*******************\n");
    printf("*  Jogo de Forca  *\n");
    printf("*******************\n\n");
}

void chuta(char chutes[26], int tentativas) {
    char chute;
    scanf(" %c", &chute);

    chutes[tentativas] = chute;
}

int main() {
    setlocale(LC_ALL, "Portuguese");

    char palavrasecreta[20];

    sprintf(palavrasecreta,"MELANCIA");

    int acertou = 0;
    int enforcou = 0;

    char chutes[26];
    int tentativas = 0;

    abertura();

    do {

        //Imprime a palavra secreta
        for(int i = 0; i < strlen(palavrasecreta); i++) {

            int achou = 0;

            //A letra já foi chutada?
            for(int j = 0; j < tentativas; j++){
                if(chutes[j] == palavrasecreta[i]) {
                    achou = 1;
                    break;
                }
            }

            if(achou) {
                printf("%c", palavrasecreta[i]);
            } else {
                printf(" _ ");
            }
        }
        printf("\n");

        chuta(chutes, tentativas);
        tentativas++;

    } while(!acertou && !enforcou);


}
1 resposta
solução

Olá Gabriel.

Eu testei seu código aqui e ele está sim colocando as letras no local correto, poderia por favor testar se está utilizando as letras maiúscula porque o seu programa nessa etapa só aceita letras maiúsculas, por exemplo:

*******************
*  Jogo de Forca  *
*******************

 _  _  _  _  _  _  _  _ 
M
M _  _  _  _  _  _  _ 
A
M _  _ A _  _  _ A
C
M _  _ A _ C _ A

Aguardo seu retorno para saber se consegui te ajudar.

Bons Estudos.