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
¿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.
estoy trabado ahí
Al contador se le suma uno a cada bucle y la operación final se realiza fuera.