Aqui está o código corrigido e funcional:
#include <stdio.h>
#include <string.h>
#include <time.h>
#include <stdlib.h>
#include <stdbool.h>
char palavrasecreta[20];
char chutes[26];
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++;
}
bool jachutou(char letra)
{
int achou = false;
for (int j = 0; j < chutesdados; j++)
{
if (chutes[j] == letra)
{
achou = true;
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 adicionapalavra()
{
char quer;
printf("Você deseja adicionar uma nova letra no jogo? (S/N)");
scanf(" %c", &quer);
if (quer == 'S')
{
char novapalavra[20];
printf("Qual a nova palavra? ");
scanf("%s", novapalavra);
FILE *f;
f = fopen("palavras.txt", "r");
if (f == 0)
{
printf("Brother, foi mal, mas banco de dados indisponivel\n\n");
exit(1);
}
int qtd;
fscanf(f, "%d", &qtd);
qtd++;
fseek(f, 0, SEEK_SET);
fprintf(f, "%d", qtd);
fseek(f, 0, SEEK_END);
fprintf(f, "\n%s", novapalavra);
fclose(f);
}
}
void escolhepalavra()
{
FILE *f;
f = fopen("palavras.txt", "r");
if (f == 0)
{
printf("Brother, foi mal, mas banco de dados indisponivel\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);
}
bool enforcou()
{
int erros = 0;
for (int i = 0; i < chutesdados; i++)
{
bool achou = false;
for (int j = 0; j < strlen(palavrasecreta); j++)
{
if(chutes[i] == palavrasecreta[j])
{ achou = true; break; }
}
if(achou != true)
{ ++erros; }
}
if(erros >= 5) { return true; }
else { return false; }
}
bool ganhou()
{
for (int i = 0; i < strlen(palavrasecreta); i++)
{
if(!jachutou(palavrasecreta[i])) {
return false;
}
}
return true;
}
int main()
{
escolhepalavra();
abertura();
do
{
desenhaforca();
chuta();
} while (!ganhou() && !enforcou());
}
Nota: Eu utilizei a biblioteca "stdbool.h", ela converte os valores de 1 e 0 para true e false, que ajuda bastante na leitura do código
Espero ter ajudado! se sim, não esqueça de marcar esse post como "solução" :)