Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Código não exibe a letra digitada

Meu código não exibe a letra digitada, alguém poderia me ajudar ?.

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

void abertura()
{
    printf("BEM VINDO AO JOGO \n");
}

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

    chutes[tentativas] = chute;

}

int main() {

    char palavrasecreta[20];
    sprintf(palavrasecreta, "MELANCIA");

    int acertou = 0;
    int enforcou = 0;

    char chutes[26];
    int tentativas = 0;

    abertura();

    do {

        for(int i = 0; i < strlen(palavrasecreta); i++) {
            int achou = 0;

            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!

Boa noite Rafael.

Com base no sintoma apresentado...

-Pelo fato da modularização do trecho de codigo dos caracteres digitados na function chuta, e da variável de armazenamento dos caracteres ser o array chutes, que recebe o caracter localmete na função, a mesma não refletirá fora da function justificando não exibir o valor digitado (somente deveria ser mostrado o caracter encontrado na variável "palavrasecreta", os demais não devem ser exibidos).

Possivel ação:

1-Retirar a declaração do array chutes de dentro da function main, e realizar declaração de forma global (fora da main).

2-Retirar o parametro da function chuta referente ao array chutes.