un ejercicio de ficheros en c

Iniciado por Palante, 3 Junio 2017, 03:20 AM

0 Miembros y 1 Visitante están viendo este tema.

Palante

Hola, he intentado hacer un ejercicio de ficheros que dice lo siguiente:

// Escribir una función que reciba una cadena con el nombre de un fichero que contiene un número entero por línea y devuelva la media de los numeros almacenados en el fichero.

yo lo planteé así:

FILE*fichero;

int x,media;

int contador;

media=0;

int i=0;

int main (void) {

fichero = fopen("datos.txt","r");

if (fichero == NULL)
    printf ("ERROR");

else {

while (feof(fichero)==0) {
     fscanf(fichero,"%d\n",&x);
      contador +=x;
      i+=x;
     media = i/contador;

      }
                                 }
fclose("datos.txt");
 


me hice un lio a la hora de hacer la media, la verdad que no sé si era necesario otro bucle while, se me ocurre hacer la ultima parte de esa manera, pero me da varios errores

gracias


MAFUS

¿por qué sumas x al contador? Si contador es un contador ¿que deberías sumar?
Y ¿por qué haces cálculos parciales de la media? Es perder ciclos de cómputo cuando solo necesitas el resultado final.

Palante


MAFUS

Al contador se le suma uno a cada bucle y la operación final se realiza fuera.