Hola buenas! Pues que estoy trabajando en un código en C que consiste en hacer una quiniela y no estoy muy seguro de como arreglar los errores que tengo. Cualquier ayuda me vale 
				
			
Código (c) [Seleccionar] 
#include <stdio.h>
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
	//Bonoloto: menú con tres opciones -1- Realizar apuesta
	//								   -2- Realizar sorteo
	//								   -3- Salir
	// 1- Nombre de usuario, 5 num. distintos(1-50), scanf y datos a fichero.
	// 2- 5 números aleatorios distintos. recuento y comparacion.
	//He intentado usar la mayor parte de las funciones, pero a la hora de comparalo, me quedo en blanco.
	int num;
	int opc;
	
		typedef struct {
 		char nombre[20];
 		int a1;
 		int a2;            // Se que no deberiamos usar variables globales.
		int a3;
		int a4;
		int a5;
		
 			} APUESTA;
 	
 
      
	void realizar_apuesta();
	void realizar_sorteo();
	void generar_solucion();
				int main(int argc, char *argv[]) {
	
	do{
		 
			 do{
			 	system("cls");
			 	printf("1 - Realizar apuesta\n");
			 	printf("2 - Realizar sorteo\n");
			 	printf("3 - Salir del programa\n"); 
				printf ("\n");  								         // Elegir opción, esto es lo fácil.
			 	fflush(stdin); scanf("%i", &opc);
			 	
			 }while(opc<1 || opc>3);
			 
			 switch(opc){
			 	case 1:
			 		realizar_apuesta();
			 		break;
			 	case 2:
			 		realizar_sorteo();
			 		break;
			 	
			 }
		
			getch();	 
	}while(opc != 3);										//Se sale del programa.
	
	
	return 0;
}
	void realizar_apuesta(){
	
	int a1, a2, a3, a4, a5;
	 	FILE *fichero;
		APUESTA registro;
		
		 fichero = fopen( "nombres.txt", "a" );
		 if(fichero == NULL){
		 	printf("Error al abrir el fichero\n");				
		 	exit(1);
		 }
		 do {
	
			 printf( "Nombre: " ); 
			 fflush(stdin);  gets(registro.nombre);
	
			 if (strcmp(registro.nombre,""))									//Se piden los numeros pantalla.
			 {
				printf( "PRIMER NUMERO: " ); 
				fflush(stdin); scanf("%i", &a1);
				
				printf( "SEGUNDO NUMERO: " ); 
				fflush(stdin); scanf("%i", &a2);
				
				printf( "TERCER NUMERO: " );
				fflush(stdin); scanf("%i", &a3);
				
				printf( "CUARTO NUMERO: " );
				fflush(stdin); scanf("%i", &a4);
				
				printf( "QUINTO NUMERO: " );
				fflush(stdin); scanf("%i", &a5);
				
				 fwrite( ®istro, sizeof(registro), 1, fichero );          // Aqui almacena los datos.
				 printf("\n");
			 }
			 
		 }while (strcmp(registro.nombre,"")!=0);
		
		 if( fclose( fichero ) != 0  ){                 
		 	printf("Error al cerrar el fichero\n");
	
   }
}
	
	void realizar_sorteo(){
	
	int i;
    int numeros[i];
    
	srand(time(NULL));
    printf("\t\nSecuencia de numeros aleatorios entre 1 y 50\n\n");           // Aqui se realiza la elección de los números aleatorios
    
	for(i=0; i<5; i++)
    printf(" %numeros[i] ", rand()%51);
	generarPuntuacion(numeros[0],numeros[1],numeros[2],numeros[3],numeros[4]);
 }
      void generar_puntuacion(int a1,int a2,int a3,int a4,int a5){
      	FILE *fichero;
		APUESTA registro;
		
		 fichero = fopen( "nombres.txt", "a" );
		 if(fichero == NULL){
		 	printf("Error al abrir el fichero\n");				
		 	exit(1);
		 }
		 
      	int aciertos = 0, i, j,numeros[5], sorteo[5];
      	char jugador[20];
			fread(jugador, 1, 20, fichero);
			sorteo[0]=a1;
			sorteo[1]=a2;
			sorteo[2]=a3;
			sorteo[4]=a4;
			sorteo[5]=a5;
			
			for (i=0; i<5; i++){
				fread(numeros [i]);
 				 for(j=0; j<5; j++){	
     				if(numeros[i] == sorteo[j]){
						aciertos++;
						printf("aciertos de "jugador": "aciertos");
        
 		 }
		} 
      	
      	
	  }