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

Ordenar enteros de forma ascendente.-

Estas en el tema de Ordenar enteros de forma ascendente.- en el foro de C/C++ en Foros del Web. 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 ...
  #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
  #2 (permalink)  
Antiguo 27/10/2010, 14:44
 
Fecha de Ingreso: enero-2008
Mensajes: 229
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: Ordenar enteros de forma ascendente.-

AL PARECER ESTAS UTILIZADO EL METODO DE LA BURBUJA PARA ORDENAR.
examinate este documento

http://www.scribd.com/doc/13433355/Metodo-Burbuja

Última edición por margarito04; 27/10/2010 a las 15:16
  #3 (permalink)  
Antiguo 27/10/2010, 15:32
RoDaVi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Ordenar enteros de forma ascendente.-

Hola margarito04
Muchas gracias x responder.-
Estoy intentado hacer mi propio algoritmo y me parece que difiere del método de la burbuja.-

Saludos.
Daniel
  #4 (permalink)  
Antiguo 27/10/2010, 16:03
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Ordenar enteros de forma ascendente.-

Tu problema recide en que orden[12] no existe. Acordate que los array empiezan desde el cero. Entonces este array que tiene 12 elementos, va desde el 0 al 11.

Tiene la pinta de ser el metodo de la burbuja.
  #5 (permalink)  
Antiguo 27/10/2010, 16:21
RoDaVi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Ordenar enteros de forma ascendente.-

Hola sam90
Estas en lo cierto, solo que ahora no me funciona el resultado final x algún error de lógica.-

Saludos.
Daniel

Etiquetas: enteros, formulario
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 19:41.