Hola, en el primer código que publiqué no entiendo lo que quieres decir con la función media() recibe un nombre de archivo, pero no hace nada con el.
Recomiendo que abras el archivo ahí también (antes de usar fread), sino la funcion fread() fracasará.
A continuación te muestro la función media para que me digas si está bien o mal, en caso de estar mal puedes indicarme por favor dónde debo hacer la corrección. Gracias.
Código C:
Ver original#
double media(const char nom_fich[]){
#
#
FILE *pf;
#
double res=0.0;
#
int num_alumnos=0;
#
struct alumno al;
#
#
fread(&al
, sizeof(al
), 1, pf
); #
#
if((pf
= fopen(nom_fich
, "rb")) == NULL
){ #
perror("Error al abrir el fichero de alumnos\n"); #
#
}
#
#
res=res + al.nota;
#
num_alumnos++;
#
fread(&al
, sizeof(al
), 1, pf
); #
}
#
#
res=res/(double)num_alumnos;
#
return(res);
#
}