Logo Hardware.com.br
Matheus frota
Matheus frot... Novo Membro Registrado
10 Mensagens 0 Curtidas

Chamando Funções...

#1 Por Matheus frot... 13/06/2015 - 11:08
Pessoal, BOM DIA. Eu queria saber como chama funções no codigo principal, eu acabei de fazer um codigo aqui e toda vez que eu chamo as funções para a principal ocorre um erro e nem compila. Queria saber como eu poderia chamar essas funções e se tiver faltando mais alguma coisa, poderiam me da alguma dica ou oq eu preciso estudar para conseguir resolver... A baixo segue o codigo:

[HASHTAG]#include[/HASHTAG] // Biblioteca Padrão de C, tem comandos básicos de entrada e saida.
[HASHTAG]#include[/HASHTAG] // Biblioteca Usada para gerar numeros aleatórios
[HASHTAG]#include[/HASHTAG] // Nem sei pra que serve...
[HASHTAG]#include[/HASHTAG] // Principal Biblioteca Grafica, tem funções como kbhit() e getch()
[HASHTAG]#include[/HASHTAG] // Usada Para Comandos System(" ");
[HASHTAG]#include[/HASHTAG] // Biblioteca Usada para funções booleanas
[HASHTAG]#include[/HASHTAG] // Biblioteca Usado para equações matematicas
[HASHTAG]#include[/HASHTAG] // Para Funções de Caracteres
[HASHTAG]#include[/HASHTAG] // Biblioteca que contém operações com strings

[HASHTAG]#define[/HASHTAG] NUM_PALAVRAS 3 //Define o número de palavras no arquivo

int main();
char palavra_aleat();
void espaco_palavra();
void cabecalho(int a);
int digitar_letra();
void checar_letra();
void play_again(int a,int b,char *c,char d);


int i,j,
tam,
index_word,
chances=6;

char palavra[20],
espaco[20],
letra;
char alfabeto[]={"abcdefghijklmnopqrstuvwxyz"};


char palavra_aleat(char)
{
FILE *fp; //Ponteiro de arquivo


fp = fopen("lista.txt", "r"); //Abre o arquivo
if(fp) //Se arquivo existir
{
srand(time(NULL)); //Pega a semente do número randômico
index_word = rand()%NUM_PALAVRAS; //Gera o número da palavra (index)
for(i=0, j=0; j {
if(fgetc(fp) == '\n') //Se achar próxima palavra
j++; //Passa para o próximo index;
/** Enquanto isso o ponteiro 'fp' armazena em si mesmo a posição do arquivo
que é navegada por 'fgetc()'. A cada consulta de caractere a posição do arquivo é passada pra frente **/
}
}
else //Se não achar arqquivo
{
printf("Lista nao encontrada.\n");
fclose(fp); //destrói o ponteiro
}

do
{
i++;
tam++;
palavra = fgetc(fp); //Lê letra por letra
if(palavra == '\n') //Se caractere lido for de próxima linha

break; //Terminou a palavra
} while(palavra != EOF); //Enquanto não fim do arquivo
palavra = '\0'; //Substitui o último caractere da palavra para indicar fim de frase
}

void espaco_palavra()
{
for(i=0;i<=tam;i++)
{
espaco='_';
printf("%c",espaco);
}
printf("\n");
}

void cabecalho(int a)
{
system("cls");
puts("\t\t\t===============");
puts("\t\t\t JOGO DA FORCA");
puts("\t\t\t===============");
printf("\nVoce possui %d tentativas!",a);
printf("\n ÉÍÍÍÍÍÍÍÍÍÍÍ»");
printf("\n º º");
printf("\n º Ê");
printf("\n º");if(a<=5){printf(" | ");}
printf("\n º");if(a<=4){printf(" (xx) ");}
printf("\n º");if(a<=3){printf(" /| |\\ ");}
printf("\n º");if(a<=2){printf(" / | | \\ ");}
printf("\n º");if(a<=1){printf(" / \\ ");}
printf("\n º");if(a<=0){printf(" / \\ ");}
printf("\n º");
printf("\n Ê\n");
}

int digitar_letra(void)
{
printf("Digite uma letra:");
letra=getchar();
if (letra == '\n')
{
return 1;
fflush(stdin);
}

if(!isalpha(letra))
{
return 1;
letra = tolower(letra);
return 0;
}
}

int checar_letra(int)
{
for(i=0;palavra!='\0';i++)
{
if(letra==palavra || toupper(letra)==palavra)
{
espaco=letra;
}
}
if(strchr(alfabeto,letra))
{
return 1;
}
if(((strchr(palavra, letra))) && ((strchr(palavra, toupper(letra)))))
{
chances--;
return 0;
}
}

void play_again(int a,int b,char *c,char d)
{
if(a==0)
{
setbuf(stdin,NULL);
system("cls");
puts("Que pena!Voce perdeu!!!");
printf("A palavra era %s",c);
}
if(b!=strlen(c))
{
setbuf(stdin,NULL);
system("cls");
puts("Parabens!Voce venceu!!!");
}
puts("Deseja jogar novamente(S/N)?\n=>");
d=getchar();
}

int main()
{
palavra_aleat(palavra);
espaco_palavra(espaco);
digitar_letra(letra);
checar_letra(chances);

char palavra[10],
tentd;

int chances=6,
acertos;

cabecalho(chances);
play_again(chances,acertos,palavra,tentd);
return 0;
}
tpcvasco
tpcvasco General de Pijama Registrado
2.9K Mensagens 330 Curtidas
#2 Por tpcvasco
14/06/2015 - 01:59
Sua declaração das funções está incompatível com as implementações.
Exemplo:
Declarou "char palavra_aleat();" mas implementou "char palavra_aleat(char)"
Declarou "void checar_letra();" mas implementou "int checar_letra(int)"
etc

Confira cuidadosamente essas diferenças (parâmetros e retorno) e acerte.

PS1: Vc não precisa de windows.h, nem time.h, nem conio.h .... Copiou esse código de alguém?
PS2: Facilitaria bastante nossa ajuda vc formatar o código com a tag "code" aqui no forum, como foi explicado (e vc fez) no seu outro post.
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal