Creo que hay unos problemas, al invertir los valores y en el for, prueba esto a ver si te sirve:
Código:
do {
fin=0;
valorAux=claveAux; // valorAux debe ser el primer elemento en la lista
/* Ahora se recorre la lista ordenándola, hasta el último eslabón de la lista,
en este caso el último eslabón es claveAux->ultimo. */
for (valorAux; valorAux!=claveAux->ultimo; valorAux=valorAux->sig) {
if (fvalores (valorAux->valor, valorAux->siguiente->valor)<0) {
fin=valorAux->valor; // Uso fin como variable temporal
valorAux->valor=valorAux->siguiente->valor;
valorAux->siguiente->valor=fin;
fin=1;
}
}
} while(fin==1);