Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Ordenacion de estructuras

Estas en el tema de Ordenacion de estructuras en el foro de C/C++ en Foros del Web. Buenas, que hay. Veran, les propongo otra duda. Tengo algo asi mas o menos: struct datos{ int puntos, edad; char nombre[20];} int main(); datos lista[100]; ...
  #1 (permalink)  
Antiguo 23/12/2007, 15:45
 
Fecha de Ingreso: diciembre-2007
Mensajes: 7
Antigüedad: 17 años
Puntos: 0
Ordenacion de estructuras

Buenas, que hay. Veran, les propongo otra duda.
Tengo algo asi mas o menos:
struct datos{
int puntos, edad;
char nombre[20];}
int main();
datos lista[100];
.
.
.
}
El programa en realidad importa poco xD, quiero que veais el tipo struct que tengo declarado.

Pues bien, quisiera ordenar la variable lista[i].puntos, de mayor a menor(de numeros mas grandes a mas pequeños).

Solo conozco el algoritmo de busqueda tipo burbuja, pero lo que hace es "descargar" temporalmente lista[i].puntos en una variable temporal, y claro, aqui vienen los problemas.
El resto de algoritmos que he encontrado, o son demasiado complejos para mi nivel, o usan tambien variables temporales.

Se me ocurrio "descargar" toda la puntuacionde lista[i] a otro array de enteros(fuera de struct), ordenarlos en ese array, y de un modo bastante sucio xD pasarlo de nuevo al array lista[i]. Pero me da fallos cuando lo que paso a lista[i] son numeros repetidos :S.
Ademas de que el proceso es muyy largo, se supone k tmb tendre que ordenar los elementos que se repitan por orden alfabetico, asi k ya os imaginareis la comida de cabeza que me traigo xD.
Si alguno me da alguna idea, o pista se lo agradecere enormemente.
saludos.
  #2 (permalink)  
Antiguo 23/12/2007, 18:03
 
Fecha de Ingreso: diciembre-2007
Mensajes: 7
Antigüedad: 17 años
Puntos: 0
Re: Ordenacion de estructuras

Pista enontrada, xD.
Al final lo hago con el metodo burbuja, y usando una variable temporal de tipo:
datos

Sorry por la pregunta, y el post desperdiciado, espero que les sirva a otros.
Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:34.