[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