• Viernes 29 de Marzo de 2024, 14:20

Autor Tema:  Problemas para ordenar numeros  (Leído 2067 veces)

salvatro

  • Nuevo Miembro
  • *
  • Mensajes: 11
    • Ver Perfil
Problemas para ordenar numeros
« en: Jueves 22 de Abril de 2010, 06:24 »
0
Buenas noches, ya hice todo ya lo resolví pero tengo un problema grande!!!
Tengo el for (int x = 0; x < 5; x++) para indicra hasta cual numero hacer el intercambio
Si coloco x=0, x=1, x=2 x=3 todo marcha a la perfeccion si lo coloco manual en el codigo, pero cuando lo corro con el form no me da el mismo resultado
Este es el resultado manual
54321
15432
21543
32154
43215


Pero el resultado con el for es este

54321
25431
32541
43251
54321



este es el codigo

int[] num = new int[5];
int aux=0,i=0,c=0,b=0;
for (int a = 0; a < 5; a++)
{
Console.WriteLine("ingresa el numero (" + a + ")");
num[a] = int.Parse(Console.ReadLine());

}

for (int x = 0; x < 5; x++)
{

for (i = 0; i < 5; i++)
{
for (c = x; c < 4; c++)
{


if (num > num[c])
{

aux = num[c];
num[c] = num;
num = aux;

}

}
}


if (x > 1)
{

for (i = 0; i < x; i++)
{
for (c = 0; c < x - 1; c++)
{
if (num > num[c])
{

aux = num[c];
num[c] = num;
num = aux;
}
}

}

}



for (b = 0; b < 5; b++)
{
Console.Write(num + ",");

}



Console.WriteLine();
}
Console.ReadLine();

muchas grasias a tu respuesta

salvatro

  • Nuevo Miembro
  • *
  • Mensajes: 11
    • Ver Perfil
Re: Problemas para ordenar numeros
« Respuesta #1 en: Jueves 22 de Abril de 2010, 06:38 »
0
Mi problema es en  la segunda lectura del for
el primer número lo lee bien pero es segundo ya no

Jeysscarr

  • Miembro MUY activo
  • ***
  • Mensajes: 134
  • Nacionalidad: co
    • Ver Perfil
Re: Problemas para ordenar numeros
« Respuesta #2 en: Jueves 22 de Abril de 2010, 19:53 »
0
Siendote muy muy franco no entendi mucho como quieres que quede...
mas aqui pongo el codigo para ordenar cinco numeros al azar en cualquier orden de mayor a menor, espero que te sirva de algo

Código: C#
  1.  
  2.     //un arreglo de 5 elementos.....
  3.     int arreglo[]={4,5,3,1,2};
  4.     int aux=0;
  5.  
  6.     //los recorro del indice cero al ultimo que es 5-1
  7.     for(int i=0;i<=4;i++)
  8.     {
  9.         //cada vez que me situe en una posicion la comparo con las que le siguen y las voy ordenando de mayor a menor
  10.         //haciendo uso de un auxiliar (aux)
  11.         for(int j=0;j<=3;j++)
  12.         {
  13.                 //si el numero en donde estoy es mayor que el que le sigue, cambio las posiciones
  14.                 if(arreglo[j]>j[arreglo+1])
  15.                 {
  16.                     aux=arreglo[j+1];
  17.                     arreglo[j+1]=arreglo[j];
  18.                     arreglo[j]=aux;
  19.                 }
  20.         }
  21.     }
  22.  
  23.     for(int x=0;x<=4;x++)
  24.         Consol.Writeline(arreglo[x] +",");
  25.     //El resultado es: 1,2,3,4,5,
  26.  
Nuestro poder está creciendo mas rápido que nuestra sabiduria