1
resposta

depois de digitar a letra para de funcionar

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

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

   int acertou = 0;
   int enforcou = 1;

   do{
        char chute;
        scanf("%c", chute);

        for(int i=0; strlen(palavraSecreta); i++) {
            if(palavraSecreta[i] == chute){
                printf("A posicao %d tem essa letra\n", i);
            }
        }
       }while(!acertou && !enforcou);


}
1 resposta

Se o programa chega a executar o scanf(), o problema tem de estar dai para frente.

Acredito que o problema mesmo esteja no while(). A condição que o seu while() está impondo pode ser traduzida da seguinte forma:

while( acertou ==0  && enforcou ==0);

Ou seja, o código irá executar o "do" uma vez, mas não irá repetir por que não está atendendo a condição do while()

O !acertou está retornando TRUE mas o !enforcou está retornando FALSE. Na lógica do &&, os dois precisam retornar TRUE.