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

BubbleSort en Struct: Problema

Estas en el tema de BubbleSort en Struct: Problema en el foro de C/C++ en Foros del Web. Buenas, no sé como me lo monto pero siempre escribo por dudas chorras. Estoy haciendo un ejercicio de array de struct para estudiar y me ...
  #1 (permalink)  
Antiguo 08/06/2008, 09:57
 
Fecha de Ingreso: noviembre-2006
Ubicación: Barcelona, España
Mensajes: 30
Antigüedad: 17 años, 5 meses
Puntos: 0
BubbleSort en Struct: Problema

Buenas, no sé como me lo monto pero siempre escribo por dudas chorras. Estoy haciendo un ejercicio de array de struct para estudiar y me hice una función de ordenación. Es un struct de alumnos con (id, nombre,clase y nota)


ESTE ES MI CODIGO

Código:
void ordernar_por_nota(struct alumne classe[MAX]){
    int i,j;
    struct alumne aux;
    for(i=0;i<MAX-1;i++){
        for(j=1+1;j<MAX;j++){
            
            if(classe[j].nota > classe[i].nota){
                
                aux.id=classe[i].nota;
                classe[i].nota=classe[j].nota;
                classe[j].nota=aux.id;
                
                }
            
            }
      
        
        }
    
    
    
    }

A ver odernar, me ordena, pero me muestra al listarlo el campo nota con algo que no es la nota y me gustaría saber porqué pasa. Muchas gracias!!!
  #2 (permalink)  
Antiguo 08/06/2008, 10:13
 
Fecha de Ingreso: abril-2008
Mensajes: 264
Antigüedad: 16 años
Puntos: 2
Respuesta: BubbleSort en Struct: Problema

¿Podria ser que en tu struct tanto id como nota tengan tipos distintos?

Igual te doy un consejo... ahí solo ordenas la nota y no te intercambias los nombres y el resto, asi que prueba con esto:

Código:
void ordernar_por_nota(struct alumne classe[MAX]){
    int i,j;
    struct alumne aux;
    for(i=0;i<MAX-1;i++){
        for(j=1+1;j<MAX;j++){
           if(classe[j].nota > classe[i].nota){
                aux = classe[i];
                classe[i] = clase[j];
                classe[j] = aux;
            }
        }     }
}
y otra cosa.... en el segundo for
Código:
for(j=1+1;j<MAX;j++){
¿j no iria de 2 a MAX cuando debe ir de 2 a MAX-1?

quedando...

Código:
 void ordernar_por_nota(struct alumne classe[MAX]){
    int i,j;
    struct alumne aux;
    for(i=0;i<MAX-1;i++){
        for(j=1+1;j<MAX-1;j++){
           if(classe[j].nota > classe[i].nota){
                aux = classe[i];
                classe[i] = clase[j];
                classe[j] = aux;
            }
        }      }
}
Prueba ya avisa.

Saludos
__________________
Saludoss
Guille
  #3 (permalink)  
Antiguo 08/06/2008, 10:42
 
Fecha de Ingreso: noviembre-2006
Ubicación: Barcelona, España
Mensajes: 30
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: BubbleSort en Struct: Problema

*-* Asias Gille me has quitao el amargor de la tarde!! la verdad es que no había caido en eso...*-* ha hacerlo con los nombres!
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 21:15.