ordenar 3 numeros en C

Iniciado por VirucKingX, 28 Marzo 2008, 00:28 AM

0 Miembros y 1 Visitante están viendo este tema.

leosansan

Cita de: VirucKingX en 28 Marzo 2008, 00:28 AM
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:
#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);
}

leosansan

Cita de: VirucKingX en 28 Marzo 2008, 00:28 AMLo 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:
#include <stdio.h>
void main (void)
{
   float a,b,c,d,menor,medio,mayor;
   printf ("Ingre los valores :");
   scanf ("%f %f %f",&a,&b,&c);
   d = (a>c) ? a : c;
   mayor= (d>b) ? d : b;
   d = (a<c) ? a : c;
   menor = (d<b) ? d : b;
   medio=a+b+c-menor-mayor;
   printf ("El orden de menor a mayor : %g  %g  %g\n",menor,medio,mayor);
   return 0;
}[code]
[/code]