[C con Clase] Método de la burbuja (era: problemas con la posicion del puntero en un fichero, funciones fread, frwite, fseek etc.)
Salvador Pozo
salvador en conclase.net
Lun Mar 12 11:06:41 CET 2012
El pasado 2012-03-11 14:24:05, Albert_Munich escribió:
A> Hola, alguien me podría ayudar con el metodo de la burbuja? lo quiero
A> aplicar a estructuras, xo tengo problemas con el final del archivo.
A> quiero ordenar un numero concreto de estructuras, que cada una contiene un
A> float, y las quiero ordenar por ese float.
Hola:
Primero, repasa el método de la burbuja, porque lo has implementado de forma incorrecta. Puedes ver una explicación en la página:
http://c.conclase.net/orden/index.php?cap=burbuja#inicio
Pon especial atención a los índices de los bucles y a los elementos que se comparan.
Hay fallos en los bucles, que creo que podrás corregir tu mismo.
También hay un fallo al leer una de las palabras:
A> fseek(fichero, i*sizeof(palabra), SEEK_SET);
A> fread(&palabra, i*sizeof(palabra), 1, fichero);
¿Lo has visto?
En la segunda línea, sobra algo. :)
Deberías generalizar más el código, no debes asumir el número de elementos en el fichero. Se puede calcular el número de palabras mediante dos sencillas sentencias:
fseek(fichero,0, SEEK_END);
nPalabras = ftell(fichero)/sizeof(palabra);
Hasta pronto.
--
Salvador Pozo (Administrador)
mailto:salvador en conclase.net
Más información sobre la lista de distribución Cconclase