Necesito ayuda, me aparece erro de compilacion pero no se donde esta
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
//************************************************** ************************
//Declaraciones de funciones
void apuestanueva (void);
void ultimasapuestas (void);
void ultimosresultados (void);
void escribirapuesta (void);
void escribiresultado (int *resultado);
void jugar (void);
int opcionesprincipales(void);
void imprimircuadro (void);
void imprimiresultado (int *juego,int);
int contadordelineas (void);
//************************************************** ************************
int numero[5];
char nombre[25];
//Cuerpo principal
void main (void)
{
int opcion;
do{
imprimircuadro();
gotoxy(15,11);printf("Introduzca su nombre: ");
gets(nombre);
}while(strlen(nombre)<1);
//Controlador de opciones
do
{ opcion=opcionesprincipales();
switch(opcion)
{
case 1:
apuestanueva();
escribirapuesta();
break;
case 2:
ultimasapuestas();
break;
case 3:
ultimosresultados();
break;
case 4:
jugar();
break;
}
}
while(opcion!=5);
exit(0);
}
//************************************************** *****************
//Realizar la apuesta
void apuestanueva (void)
{
int i;
imprimircuadro();
gotoxy(15,9);printf("Introduzca los 5 numeros del 1 al 50");
for (i=0;i<5;i++)
{
numero[i]=0;
do {
gotoxy(15,i+10);printf("Numero %i: ",i+1);
gotoxy(26,i+10);scanf("%i",&numero[i]);fflush(stdin);
}
while(numero[i]<=0 || numero[i]>50);
}
//se comprueba que los numeros introducidos esten entre el 0 y el 50
}
//************************************************** ************************
//Opciones principales
int opcionesprincipales(void)
{
int opcion;
do{
//************************************************** **
imprimircuadro();
//Hacemos el menu de opciones
gotoxy(15,9);printf("1 - Jugar con combinacion nueva");
gotoxy(15,10);printf("2 - Jugar con combinacion anterior");
gotoxy(15,11);printf("3 - Ver ultimos resultados");
gotoxy(15,12);printf("4 - Jugar");
gotoxy(15,13);printf("5 - Salir");
gotoxy(15,14);printf("Introduzca opcion: ");
//************************************************** ****
opcion=0;
gotoxy(35,14);scanf("%i",&opcion);fflush(stdin);
}while(opcion<1 || opcion>5);
return(opcion);
}
//************************************************** ************************
//Imprime el cuadro
void imprimircuadro (void)
{
int i;
clrscr();//borramos pantalla, para volver a hacer el cuadro
//Creamos un cuadrado para hacerlo mas curioso
for(i=10;i<=60;i++)
{ gotoxy(i,4);printf("*");
gotoxy(i,18);printf("*");}
for(i=4;i<=18;i++)
{ gotoxy(10,i);printf("*");
gotoxy(60,i);printf("*");}
}
//************************************************** ************************
//Abrir fichero txt de las ultimas apuestas
void ultimasapuestas (void)
{
FILE *abrefichero=NULL;
int *ulas[5],i,j=0,z;
char nula;
//se llama a una funcion que se encarga de saber cuantas apuestas ha avido para no utilizar mas memoria dinamica de la precisa
j=contadordelineas();
imprimircuadro();
abrefichero=fopen("apuestas.txt","rt");
if(abrefichero==NULL)
{
gotoxy(15,11);printf("No hay apuestas almacenadas");
getch();
}
else
{
gotoxy(12,5);printf("Elije una de las apuestas (0-salir): ");
for(i=0;i<j;i++)
{
gotoxy(12,6+i);printf("%i - ",i+1);
for(z=0;z<5;z++)
{
ulas[z]=(int *)malloc((j)*sizeof(int));
fscanf(abrefichero, "%2d", ((ulas[z])+i));
fscanf(abrefichero, "%c", &nula);
printf("%2i",*((ulas[z])+i));
}
printf("\n");
}
fclose(abrefichero);
gotoxy(49,5);scanf("%i",&j);fflush(stdin);
//se le pasa de la memoria dinamica los valores al array principal
if(j!=0)
{
j--;
for(z=0;z<5;z++)
{
numero[z]=*((ulas[z])+j);
}
}
}
}
//************************************************** ************************
//Abrir fichero bin de los ultimos resultados
void ultimosresultados (void)
{
FILE *abrefichero=NULL;
int *pun[5],i,z=6;
imprimircuadro();
abrefichero=fopen("resultados.bin","rb");
if(abrefichero==NULL)
{
gotoxy(15,11);printf("No hay resultados almacenados");
}
else
{
gotoxy(12,5);printf("Los ultimos resultados son: ");
do
{
fread(pun, sizeof(int), 5, abrefichero);
gotoxy(15,z);z++;
for(i=0;i<5;i++)printf("%i ",pun[i]);
}while(!feof(abrefichero));
}
fclose(abrefichero);
getch();
}
//************************************************** ************************
//Comienza el juego
void jugar (void)
{
int juego[5],i,j,contar=0;
randomize();
for(i=0;i<5;i++)
{
juego[i]=0;
juego[i]=random(50);
for(j=0;j<5;j++)
{
if(juego[i]==numero[j])contar++;
}
//creamos un contador para saber los acierto obtenidos de la apuesta con los numeros generados aleatoriamente
}
escribirapuesta();
imprimiresultado(juego,contar);
escribiresultado(juego);
}
//************************************************** ************************
//Se graban las apuestas
void escribirapuesta (void)
{
FILE *abrefichero=NULL;
int i;
//Se añade la ultima apuesta y para controlar cada apuesta de añade una letra
abrefichero=fopen("apuestas.txt","a+");
for(i=0;i<5;i++)
{fprintf(abrefichero, "%2d", numero[i]);}
fputc('a', abrefichero);
fclose(abrefichero);
}
//************************************************** ************************
//Se graban los resultados
void escribiresultado (int *resultado)
{
FILE *abrefichero=NULL;
abrefichero=fopen("resultados.bin","ab"); //se utiliza añadir ya que solo es un resultado
fwrite(resultado, sizeof(int), 5, abrefichero);
fclose(abrefichero);
}
//************************************************** ************************
//Mostrar los resultados
void imprimiresultado (int *juego,int aciertos)
{
imprimircuadro();
gotoxy(15,9);printf("Los aciertos son: %i aciertos",aciertos);
gotoxy(15,11);printf("Los numeros apostados son:");
gotoxy(15,12);printf("%2i %2i %2i %2i %2i",numero[0],numero[1],numero[2],numero[3],numero[4]);
gotoxy(15,13);printf("Los numeros del juego son:");
gotoxy(15,14);printf("%2i %2i %2i %2i %2i",juego[0],juego[1],juego[2],juego[3],juego[4]);
getch();
}
//************************************************** ************************
//Contador de lineas
int contadordelineas(void)
{
FILE *abrefichero=NULL;
int i,j=0;
abrefichero=fopen("apuestas.txt","r");
if(abrefichero==NULL)
{
gotoxy(15,11);printf("No hay apuestas almacenadas");
}
else
{
while (i != EOF)
{
i = getc(abrefichero);
if (i == 97)
{j++;};
}
fclose(abrefichero);
}
return(j);
}