Si recién estás empezando con vectores (como puedo notarlo) no te recomiendo meterte ahora en listas enlazadas...
Mejor sigue el consejo del algoritmo sencillo que te describió Khronos14...
Este parece un clásico problema de escuela secundaria...
Algunas consideraciones:
-En tu función burbujas usas variables no declaradas (contadores como w)
-Yo había aprendido que el método burbuja era el que comparaba j con j+1... ahora veo que muchos ponen ésto como método burbuja, me gusta más el otro... es factible hacer más optimizaciones (en la wikipedia está explicado en pseudocódigo como yo digo, pero implementado en C de la manera que tu pones)
-Vos querés ordenar por edades y hacés esto:
Creas un nuevo arreglo de enteros donde copias las edades
Las ordenas
Buscas las edades del arreglo ordenado (en el orden en que aparecen) en el vector de estructuras y vas imprimiendo.
Por que no directamente ordenas el vector de estructuras
¿Sabías que podés igualara dos estructuras? Osea, hacer la siguiente asignación...
Así compararías x[ i].edad y x[j].edad e intercambiar x[ i] y x[j]...
Porque sino luego tienes que hacer la búsqueda, es un método muy poco óptimo...
Además de los problemas que aquerrea que tengas edades iguales... (en ese caso las mostraría muchas veces)
Mejor sigue el consejo del algoritmo sencillo que te describió Khronos14...
Este parece un clásico problema de escuela secundaria...
Algunas consideraciones:
-En tu función burbujas usas variables no declaradas (contadores como w)
-Yo había aprendido que el método burbuja era el que comparaba j con j+1... ahora veo que muchos ponen ésto como método burbuja, me gusta más el otro... es factible hacer más optimizaciones (en la wikipedia está explicado en pseudocódigo como yo digo, pero implementado en C de la manera que tu pones)
-Vos querés ordenar por edades y hacés esto:
Creas un nuevo arreglo de enteros donde copias las edades
Las ordenas
Buscas las edades del arreglo ordenado (en el orden en que aparecen) en el vector de estructuras y vas imprimiendo.
Por que no directamente ordenas el vector de estructuras
¿Sabías que podés igualara dos estructuras? Osea, hacer la siguiente asignación...
Código (C) [Seleccionar]
struct alumno a, b;
//Acá hago un ingreso
a=b;
Así compararías x[ i].edad y x[j].edad e intercambiar x[ i] y x[j]...
Porque sino luego tienes que hacer la búsqueda, es un método muy poco óptimo...
Además de los problemas que aquerrea que tengas edades iguales... (en ese caso las mostraría muchas veces)