Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Palante en 3 Junio 2017, 03:20 am



Título: un ejercicio de ficheros en c
Publicado por: Palante en 3 Junio 2017, 03:20 am
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í:

Código:
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



Título: Re: un ejercicio de ficheros en c
Publicado por: MAFUS en 3 Junio 2017, 03:35 am
¿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.


Título: Re: un ejercicio de ficheros en c
Publicado por: Palante en 4 Junio 2017, 04:55 am
estoy trabado ahí


Título: Re: un ejercicio de ficheros en c
Publicado por: MAFUS en 4 Junio 2017, 07:52 am
Al contador se le suma uno a cada bucle y la operación final se realiza fuera.