Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Não funciona como deveria e não faço ideia do pq.

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

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

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

 int acertou = 0 ;
 int enforcou = 0;

 char chutes[26];
 int tentativas = 0;

 do 
 {
     int i = 0;
     for (i; i , strlen(palavraSecreta); i++)
   {

        int achou = 0;
       int j = 0;
       for (j; j < tentativas; j++)
       {
           if (chutes[j] == palavraSecreta[i])
           {
               achou = 1;
               break;
           }
       }     
        if (achou) 
       {
           printf("%c", palavraSecreta[i]);
       }
     else 
       {
        printf("_");
       }
    printf("\n");
    char chute;
    printf("Qual é o chute?");
    scanf(" %c", &chute);

    chutes[tentativas] = chute;
    tentativas++;
    }    



    } while (!acertou && !enforcou);

    system ("pause");
    return 0;
}
3 respostas
solução!

Oi Pedro tudo bem?

O código correto ficaria assim:

#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]) {
                    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);

}

Nessa linha

     for (i; i , strlen(palavraSecreta); i++)

o correto é

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

Nessa linha

       for (j; j < tentativas; j++)

o correto é

            for(int j = 0; j < tentativas; j++) {

Sugiro ver o código do professor e tentar escrever ele do zero se baseando nele.

Espero ter ajudado!!!

É na linha do i foi falta de atenção mesmo rs, mas na do j foi pq eu tive que declarar a varialvel int j antes. Meu compilador não le a declaração direta no for, acho que tenho que instalar uma versão mais recente do mesmo. Obrigado

Disponha e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software