SoloCodigo

CLR: .Net / Mono / Boo / Otros CLR => C# => Mensaje iniciado por: salvatro en Jueves 22 de Abril de 2010, 06:24

Título: Problemas para ordenar numeros
Publicado por: salvatro en Jueves 22 de Abril de 2010, 06:24
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
Título: Re: Problemas para ordenar numeros
Publicado por: salvatro en Jueves 22 de Abril de 2010, 06:38
Mi problema es en  la segunda lectura del for
el primer número lo lee bien pero es segundo ya no
Título: Re: Problemas para ordenar numeros
Publicado por: Jeysscarr en Jueves 22 de Abril de 2010, 19:53
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.