1
resposta

Erro quando rodo o programa

Quando rodo meu código no cmd o que aparece para mim é o seguinte:

Qual letra?A

_ _ _ ┘ A_ _ _ ┘ A

Sendo que o esperado era aparecer somente as letras "A" e os traços. Gostaria de saber o motivo do meu código aparecer com esses símbolos estranhos antes das letras. Isso só está ocorrendo nesse código. Meu código está aqui:

#include <stdio.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{

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

       for(int j = 0; j < tentativas; j++){
           if(chutes[j] == palavrasecreta[i]){
               printf("%c ");
               achou = 1;
               break;
           }
       }

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

    char chute;
    printf("Qual letra?");
    scanf(" %c", &chute);

    chutes[tentativas] = chute;
    tentativas++;

} while(!acertou && !enforcou);

}

1 resposta

Olá, Eduardo! Tudo bem?

No trecho abaixo o printf está sendo usado para mostrar %c e por isso aparece esse caracter aleatório.

       for(int j = 0; j < tentativas; j++){
           if(chutes[j] == palavrasecreta[i]){
               printf("%c ");
               achou = 1;
               break;

Retirando essa linha o programa roda como o esperado.

Aproveito para deixar uma dica para as próximas vezes que for compartilhar seus códigos aqui no fórum. A melhor forma de colocar seu código aqui é clicando no botão </> na barra superior da sua mensagem. Dessa forma, dois conjuntos de três crases irão aparecer e você pode escrever seu código entre elas. Uma outra opção é colocar as três crases repetidas no início e no fim do seu código, sem utilizar o botão </>. Com os dois casos você verá:

Temos três linhas escritas. Na primeira e na terceira três crases e na segunda está escrito Seu código

Espero ter ajudado! Continue praticando :)

Abraços!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!