Título: ordenar 3 numeros en C Publicado por: VirucKingX en 28 Marzo 2008, 00:28 am Esta es mi duda, como ordenar 3 numeros de menor a mayor en C
Esto es lo que tengo : Citar #include <stdio.h> int main () { float x1,x2,x3,menor,mayor; printf ("Ingre los valores :"); scanf ("%f %f %f",&x1,&x2,&x3); menor = x1; mayor = x3; if ( x2 < menor ) menor = x2; if ( x3 < menor ) menor = x3; if ( x1 > mayor ) mayor = x1; if ( x2 > mayor ) mayor = x2; printf ("El orden de menor a mayor : %f %f\n",menor,mayor); return (0); } Lo que no puedo sacar es el valor del medio ;D haber si me dan una mano Bye Título: Re: ordenar 3 numeros en C Publicado por: Nakp en 28 Marzo 2008, 00:47 am investiga sobre el método de la burbuja, y es más fácil con un vector ;)
salu2 Título: Re: ordenar 3 numeros en C Publicado por: VirucKingX en 28 Marzo 2008, 00:55 am investiga sobre el método de la burbuja, y es más fácil con un vector ;) salu2 conozco el metodo de la burbuja, pero como recien me estan pasando el if, else if ya que estoy en primer año. No quiero hacer un codigo demasiado complicado y por eso trato de hacerlo lo mas simple posible con if. Título: Re: ordenar 3 numeros en C Publicado por: Flakito81 en 28 Marzo 2008, 02:16 am Lo mas sencillo es usar un metodo de ordenacion, el de la burbuja que ya te han comentado es bastante sencillo. Si quieres hacerlo con variables y el programa estructurado tal cual lo tienes tan solo has de declarar una variable medio y despues de los calculos (antes del printf) poner este codigo
Código Como puedes ver el codigo se puede complicar cuantos mas numeros quieras ordenar. Saludos! PD: En stdlib existe una funcion para ordenar (metodo QuickSort) qsort mira como funciona por si te interesa http://www.conclase.net/c/librerias/funcion.php?fun=qsort (http://www.conclase.net/c/librerias/funcion.php?fun=qsort) Título: Re: ordenar 3 numeros en C Publicado por: Hesp en 28 Marzo 2008, 10:41 am Código
Título: Re: ordenar 3 numeros en C Publicado por: VirucKingX en 28 Marzo 2008, 14:42 pm Lo mas sencillo es usar un metodo de ordenacion, el de la burbuja que ya te han comentado es bastante sencillo. Si quieres hacerlo con variables y el programa estructurado tal cual lo tienes tan solo has de declarar una variable medio y despues de los calculos (antes del printf) poner este codigo Código Como puedes ver el codigo se puede complicar cuantos mas numeros quieras ordenar. Saludos! PD: En stdlib existe una funcion para ordenar (metodo QuickSort) qsort mira como funciona por si te interesa http://www.conclase.net/c/librerias/funcion.php?fun=qsort (http://www.conclase.net/c/librerias/funcion.php?fun=qsort) Gracias justo lo havia echo igual xD, Bye Título: Any Publicado por: any en 10 Abril 2008, 15:03 pm >:(
Título: Re: ordenar 3 numeros en C Publicado por: bluesith en 11 Abril 2008, 20:10 pm En el caso de que tu profesor no te haya pedido con arreglos mi solucion seria esta:
#include<stdio.h> #include<conio.h> #include<iostream.h> void main() { int a,b,c,x,y,o,p,q; /* declaracion variables */ clrscr(); /*************************/ cout<<"\na : "; /* */ cin>>a; /* */ cout<<"\nb : "; /* Ingreso de valores */ cin>>b; /* */ cout<<"\nc : "; /* */ cin>>c; /*************************/ getch(); o=a; p=b;q=c; /* "Backup" de valores ingresados para impresion final */ if(c<b) { x=c; y=b; /* comparacion entre el 3er y 2do valor */ b=x; c=y; } if(b<a) { x=b; y=a; /* comparacion entre el 2do y 1er valor */ a=x; b=y; } if(c<b) { x=c; y=b; /* comparacion entre el 3er y 2do valor */ b=x; c=y; } getch(); cout<<"Los numeros son: "<<o<<" "<<p<<" "<<q<<"\n"; /* Impresion valores originales */ cout<<"Y ordenados son: "<<a<<" "<<b<<" "<<c<<"\n"; /* Impresion valores ordenados */ getch(); } Título: Re: ordenar 3 numeros en C Publicado por: eKoutsh en 22 Septiembre 2012, 13:22 pm Añadiendo una variable "medio", a la cual se le dará la suma de los 3 números(x1 + x2 + x3), pero también se le restará el "mayor" y el "menor", así simplemente quedará el "medio".
Espero que se entienda y que te sirva aunque sea un poco. #include <stdio.h> int main () { float x1,x2,x3,menor,mayor; float medio; printf ("Ingre los valores :"); scanf ("%f %f %f",&x1,&x2,&x3); menor = x1; mayor = x3; if ( x2 < menor ) menor = x2; if ( x3 < menor ) menor = x3; if ( x1 > mayor ) mayor = x1; if ( x2 > mayor ) mayor = x2; // Añadiendo esta sentencia, ya que se conoce el mayor y el menor, simplificamos (con sus opuestos) // y nos queda... el medio medio = x1 + x2 + x3 - mayor - menor; printf ("El orden de menor a mayor : %f %f %f\n",menor,medio,mayor); return (0); } Título: Re: ordenar 3 numeros en C Publicado por: diegoCmC en 22 Septiembre 2012, 14:33 pm Aqui tienes el codigo de la forma que lo quieres ordenar tu.
Pero es mas facil usando un array que nombres genericos, aunque igual aun no aprendiste a usar los array Un saludo Código
Título: Re: ordenar 3 numeros en C Publicado por: leosansan en 23 Septiembre 2012, 18:01 pm Lo que no puedo sacar es el valor del medio ;D haber si me dan una mano Si así lo quieres, así lo tendrás. No es lo más "elegante" pero es lo que quieres:Código: #include <stdio.h> int main () { float x1,x2,x3,menor,medio,mayor; printf ("Ingre los valores :"); scanf ("%f %f %f",&x1,&x2,&x3); menor = x1; mayor = x3; if ( x2 < menor ) menor = x2; if ( x3 < menor ) menor = x3; if ( x1 > mayor ) mayor = x1; if ( x2 > mayor ) mayor = x2; if (x1!=mayor && x1!=menor) medio=x1; else if (x2!=mayor && x2!=menor) medio=x2; else if (x3!=mayor && x3!=menor) medio=x3; printf ("El orden de menor a mayor :%g %g %g\n",menor,medio,mayor); return (0); } Título: Re: ordenar 3 numeros en C Publicado por: leosansan en 23 Septiembre 2012, 18:21 pm Lo que no puedo sacar es el valor del medio ;D haber si me dan una mano Y con la idea de eKoutsh y cambiando los if por el condicional:Código [/code] |