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

floating point exception: 8

Estou usando o vscode, e não consigo rodar mais o código depois de criar a função para ler o arquivo com as palavras. O terminal retorna: Floating point exception: 8 O que isso significa?

Meu código:

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

void abertura();
void chuta();
int jachutou(char letra);
void desenhaforca();
void escolhepalavra();
int enforcou();
int ganhou();


char chutes[26];
char palavrasecreta[20];
int chutesdados = 0;

void abertura(){
    printf("*******************\n");
    printf("*  Jogo de Forca  *\n");
    printf("*******************\n");
}

void chuta(){
    char chute;
    scanf(" %c", &chute);

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

int jachutou(char letra){
   int achou = 0;

    for (int j=0; j< chutesdados; j++) {
        if (chutes[j] == letra) {
            achou = 1;
            break;
        }
    }
    return achou;
}

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

        int achou = jachutou(palavrasecreta[i]);

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

void escolhepalavra() {
    FILE* f;

    f = fopen("palavras.txt", "r");
    if(f == 0) {
        printf("Banco de dados de palavras não disponível\n\n");
        exit(1);
    }

    int qtddepalavras;
    fscanf(f, "%d", &qtddepalavras);

    srand(time(0));
    int randomico = rand() % qtddepalavras;

    for(int i = 0; i <= randomico; i++) {
        fscanf(f, "%s", palavrasecreta);
    }

    fclose(f);
}

int enforcou(){

    int erros = 0; 

    for (int i=0; i< chutesdados; i++){
        int existe = 0;

        if(jachutou(palavrasecreta[i])){ 
            existe = 1;
            break;
        }
        if (!existe) erros++;
    }
    return erros >=5;
}

int ganhou(){

    for (int i=0; i<strlen(palavrasecreta); i++){
        if(!jachutou(palavrasecreta[i])){
            return 0;
        }
    }

    return 1;
}


int main(){

    escolhepalavra();
    abertura();

    do{

        desenhaforca();
        chuta();


    } while(!ganhou() && !enforcou());

}
1 resposta
solução!

Meu erro foi não salvar o file de palavras.txt depois de adicionar as palavras nele. Já consegui resolver rsrs