Ver Mensaje Individual
  #7 (permalink)  
Antiguo 01/04/2010, 14:34
minette1988
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: fichero binario que calcula la media

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
  1. #
  2. double media(const char nom_fich[]){
  3. #
  4.  
  5. #
  6.    FILE *pf;
  7. #
  8.    double res=0.0;
  9. #
  10.    int num_alumnos=0;
  11. #
  12.    struct alumno al;
  13. #
  14.  
  15. #
  16.    fread(&al, sizeof(al), 1, pf);
  17. #
  18.  
  19. #
  20.    if((pf = fopen(nom_fich, "rb")) == NULL){
  21. #
  22.        perror("Error al abrir el fichero de alumnos\n");
  23. #
  24.        exit(3);
  25. #
  26.    }
  27. #
  28.    while(!feof(pf)){
  29. #
  30.        res=res + al.nota;
  31. #
  32.        num_alumnos++;
  33. #
  34.        fread(&al, sizeof(al), 1, pf);
  35. #
  36.    }
  37. #
  38.    fclose(pf);
  39. #
  40.    res=res/(double)num_alumnos;
  41. #
  42.    return(res);
  43. #
  44. }