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");
}
}
}