Ver Mensaje Individual
  #5 (permalink)  
Antiguo 16/12/2012, 06:20
vosk
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 8 meses
Puntos: 83
Respuesta: Problema con programa de ordenamiento (usando apuntadores a funciones)

"...el primer ciclo for, por qué no se imprime?..."

El primer for si que se imprime (o al menos a mi me lo imprime), pero luego en la funcion 'ordenamientoSeleccion' entra en un bucle infinito: el 'for(int i' no lo detiene porque nunca llega a salir del otro bucle 'for(indice'

Código:
void ordenamientoSeleccion(int trabajo[], const int tamanio, bool(*compara)(int, int)) {
    int menorOMayor;
    int indice;
    
    for(int i = 0; i < tamanio - 1; i++) {
        menorOMayor = i;
        printf("I=%d\n", i);            //aqui
        
        for(indice = i + 1; indice < tamanio; i++)
            printf("\tindice=%d, i=%d\n", indice, i);      //y aqui
            
        if(!(*compara)(trabajo[menorOMayor], trabajo[indice]))
            menorOMayor = indice;
        
        intercambiar(&trabajo[menorOMayor], &trabajo[i]);
    }
}
Supongo que ya lo has probado, indice siempre es 1 porque solo entra una vez desde i=0, luego ya nunca sale del segundo bucle que incrementa de forma infinita la variable 'i'

Saludos
vosk