hola, haciendo un programa de metodos de ordenamiento, me encontré con este problema:
el programa consiste en una especie de base de datos de automoviles (bastante primitiva), donde el usuario da el "Codigo", "modelo", "año", "precio". estoy utilizando estructuras, esta escrutura es:
autos{
int codigo;
char modelo[10];
char año[4];
char precio[10];
} autos[100];
para ordenar mis datos usando bubble sort, usé el campo de "codigo" como base para hacerlo, ya que se trata de unicamente numeros. el problema es que unicamente me ordena ese campo (el de codigo) pero los otros campos(nombre,direccion, telefono), nos deja en su posicion original.
mi pregunta es: como hago para que se mueva el registro completo a la posicion deseada?...
esta es la parte del codigo encargada del ordenamiento
for(ai=a-1;ai>=0;ai--){ //a es el total de datos(autos) en la lista
for(aj=1;aj<=ai;aj++){
if(autos[aj-1].codigo>autos[aj].codigo){
auxa=autos[aj-1].codigo;
autos[aj-1].codigo=autos[aj].codigo;
autos[aj].codigo=auxa;
}
}
}
// esta es la parte del despliegue
for(ai=1;ai<a;ai++){
gotoxy(1,3+ai); cout<<ai;
gotoxy(6,3+ai); cout<<autos[ai].codigo;
gotoxy(25,3+ai); cout<<autos[ai].marca;
gotoxy(45,3+ai); cout<<autos[ai].modelo;
gotoxy(65,3+ai); cout<<autos[ai].precio;
}
cout<<"nn Presione "ENTER" para continuar...";
getch();
se que unicamente estoy cambiando la posicion del vector codigo, y que por esa razon los otros quedan en su posicion original, pero como soluciono esto? gracias.