Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/10/2010, 14:15
RoDaVi
Invitado
 
Mensajes: n/a
Puntos:
Ordenar enteros de forma ascendente.-

Hola a todos
Bueno lo que pretendo hacer es como se vera ordenar 10 enteros en forma ascendente, no tengo errores de compilación pero parecería que el compilador me informa que estoy intentando escribir(o leer) en alguna parte de la memoria que no esta disponible.-
les aseguro que hace unas cuantas horas que le doy vueltas al asunto y tengo la cabeza embotada y no encuentro la solución.-

Código:
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    int orden[12]= {44, 66, 5, 18, 20, 33, 99, 51, 16, 81, 44, 0},aUno,aDos,auxUno=1,auxDos;

/*
    char * enteros[10] = {"Primer ", "Segundo", "Tercer ", "Cuarto ", "Quinto ", "Sexto  ", "Septimo",
                         "Octavo ", "Noveno ", "Ultimo "};

    for(aUno=0; aUno<10; aUno++)
    {
       printf("\n\tIngrese %s entero...:",enteros[aUno]);
       scanf("%d",&orden[aUno]);
    }
*/
    /*La explicación es teniendo en cuenta la primer iteración
    auxUno es para no pasar mas de una ves x el número ya ordenado/*
    
    for(aUno=0; aUno<10; aUno++)
    {
       orden[11]=orden[aUno];
       for(aDos=auxUno; aDos<10-auxUno; aDos++)
       {
           if ( orden[aUno] < orden[11] )
           {
               orden[11]=orden[aUno]; /*guardo el menor (5)*/
               auxDos=aDos;           /*guardo el orden donde encontré el menor[2]*/
               orden[12]=aUno;        /*guardo el número para intercambiar(44)*/
           }
       }
       orden[aUno]=orden[11];   /*guardo el menor (5 -> orden[0])*/
       orden[auxDos]=orden[12]; /*intercambio los números (en el orden[2] pongo el 44*/
       auxUno++;
    }

    for(aUno=0; aUno<10; aUno++)
    {
       printf("\n\tNumeros ordenados %d",orden[aUno]);
    }

    return 0;
}
Espero ayuda y gracias x el tiempo.-

Saludos.
Daniel