SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: essios en Miércoles 23 de Abril de 2003, 23:56

Título: Re: ordenar numeros
Publicado por: essios en Miércoles 23 de Abril de 2003, 23:56
verán, esta duda ya la planteé con anterioridad, pero no acabo de aclararme.

quiero ordenar tres numeros introducidos por teclado (supongamos que son diferentes, eso con un while se deja especificao facilmente).

ahora tendria que que emplear varias sentencias IF para comparar los numeros...pero estoy hecho un lio!
Título: Re: ordenar numeros
Publicado por: JuanK en Jueves 24 de Abril de 2003, 01:17
una vez capturados:
 
Código: Text
  1.  
  2. int aux;
  3.  
  4. if (dato1>dato2 && dato1>dato3)
  5. {
  6.     aux=dato3;
  7.     dato3=dato1;
  8.     dato1=aux;
  9. }
  10. else
  11. {
  12.    if (dato2>dato1 && dato2>dato3)
  13.    {
  14.       aux=dato3;
  15.       dato3=dato2;
  16.       dato2=aux;
  17.    }
  18. }
  19. if(dato1 > dato2)
  20. {
  21.       aux=dato1;
  22.       dato1=dato2;
  23.       dato2=aux;
  24. }
  25.  
  26.  

Se puede hacer más corto, pero como veos que no eres muy avanzado he sacrificado algo de eficiencia por claridad.

Pues bien si te fijas lo primero es mirar si el primero es mayor que los otros dos, si esto es asi lo intercambianos con la tercera posicion.
Si no es mayor que los otros dos, miramos si el segundo dato si es mayor que los otros dos, si es mayor lo intercambiamos con el ultimo dato.

asi las cosas solo resta mirar si el actual dato1 es mayor que el acual dato2, si loes , intercambiamos, sino es ques ya estaba bien...y listo asi te queda el menor en dato1 y el mayor en dato2.

Trata de reducir el codigo una vez lo hayas entendido.


chauu :lightsabre:
Título: ordenar numeros
Publicado por: MistMaker en Jueves 1 de Mayo de 2003, 02:45
como podria reducirse??
para mi eso es lo mas eficiente
LEO