2
respostas

Impressão da Palavra MELANCIA incorreta

Ao compilar o código, é retornado as 8 linhas conforme o tamanho do array, porem ao chutar uma letra, no caso a letra M, ele retorna a palavra "MELANCIA", ou então, se eu chutar a letra L, ele retorna " L A N C I A".

revisei o código e não encontrei diferença com o que está em curso, poderia me ajudar?

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

int main()
{
    char palavraSecreta[20];
    sprintf(palavraSecreta, "MELANCIA");

    int acertou = 0;
    int enforcou = 0;

    char chutes[26];
    int tentativas = 0;

    do{
        int i;


        for(i = 0; i < strlen(palavraSecreta); i++){
            int j;
            int achou = 0;
            for(j = 0; j < tentativas; j++){
               if(chutes[j] == palavraSecreta[i]){
                    achou = 1;
                    break;
                }
            }
            if(achou){
                printf("%c  ", palavraSecreta[i]);
            }else{
                printf("_ ");
            }
        }
        printf("\n");

        char chute;
        scanf(" %c", &chute);

        chutes[tentativas] = chute;
        tentativas++;

    }while(!acertou && !enforcou);
}
2 respostas

Olá SuperUser,

Leia sobre Formatação no canto superior direito da caixa de comentários. Uma boa formatação é essencial para que as pessoas entendam seu código.

Oi SuperUser,

Aqui parece estar funcionando.

_ _ _ _ _ _ _ _ 
> M
M  _ _ _ _ _ _ _ 
> E
M  E  _ _ _ _ _ _ 
> L
M  E  L  _ _ _ _ _ 
> A
M  E  L  A  _ _ _ A

Uma coisa que falta é tratar o caso que enforca. Você pode detalhar mais o que está acontecendo na sua máquina?