• Domingo 22 de Diciembre de 2024, 15:59

Autor Tema:  NUMERO MAYOR  (Leído 2723 veces)

breadpett

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
NUMERO MAYOR
« en: Jueves 30 de Septiembre de 2010, 18:26 »
0
Hola, soy nuevo en la programacion en C# y quiero preguntarles
sobre un problema:
Pedirle al usuario que ingrese 3 numeros y que el programa muestre
cual es el mas grande, el segundo y el mas chico; o sea que los
muestre de mayor a menor. Ej si ingresamos: 45, 7, 96 el programa
imprima "96 es mayor que 45 y 45 es mayor que 7", o:  "3ro > 1ro > 2do".

 El código que se me ocurrio lo dejo abajo, pero creo que
 no es el mas adecuado  ya que si tuviera que ingresar muchos numeros
 habria que decirle al programa cada una de las posibilidades.

 La pregunta es si hay algun metodo mas simple o mas adecuado, y que
 me permita ingresar muchos numeros sin tener que indicarle
 las distintas posibilidades al programa.

Gracias y saludos!
CODIGO:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {


            Console.ForegroundColor = ConsoleColor.Black;
            Console.BackgroundColor = ConsoleColor.White;
            Console.Clear();

         


            Console.WriteLine("Escribi un numero a n");
            int a = Convert.ToInt32(Console.ReadLine());    //los caracteres ingresados se van a convertir a int32

            Console.WriteLine("Escribi un numero entero b n");
            int b = Convert.ToInt32(Console.ReadLine());

            Console.WriteLine("Escribi un numero entero c n");
            int c = Convert.ToInt32(Console.ReadLine());



            /*
           
             *  
             *    LISTADO DE POSIBILIDADES:
             *    ------------------------
             
             *    A > B > C
             *    A > B = C *1
             *    A = B > C *2
             *    
             *    A > C > B
             *    A > C = B *1
             *    A = C > B *6
             *  --------------
             *    B > A > C
             *    B > A = C *3
             *    B = A > C *2
             *    
             *    B > C > A
             *    B > C = A *3
             *    B = C > A *4
             *  --------------
             *    C > A > B
             *    C > A = B *5
             *    C = A > B *6
             *    
             *    C > B > A
             *    C > B = A *5           NOTA: LAS LETRAS LOS * ES PORQUE SE REPITEN LAS POSIBILIDADES
             *    C = B > A *4
             *  --------------        
             *    A = B = C          
                                     
             *
             *
             *
             *  LISTADO DE POSIBILIDADES (sin las que se repiten):
             *    ------------------------
             
             *    A > B > C
             *    A > B = C *1
             *    A = B > C *2
             *    
             *    A > C > B
             *  
             *    A = C > B *6
             *  --------------
             *    B > A > C
             *    B > A = C *3
             *  
             *    
             *    B > C > A
             *    
             *    B = C > A *4
             *  --------------
             *    C > A > B
             *    C > A = B *5
             *    
             *    
             *    C > B > A
             *                    
             *  
             *  --------------        --------------------
             *    A = B = C           * 13 POSIBILIDADES *
                                      --------------------
             *
             
             
             */

            if (a > b && b > c)
            {
                Console.WriteLine(" n a > b > c ");
            }

            if (a > b && b == c)
            {
                Console.WriteLine("n a > b = c");
            }

            if (a == b && b > c)
            {
                Console.WriteLine("n a = b > c");
            }

            if (a > c && c > b)
            {
                Console.WriteLine("n a > c > b");
            }

            if (a == c && c > b)
            {
                Console.WriteLine("n a = c > b");
            }

            /******************************************************************/

            if (b > a && a > c)
            {
                Console.WriteLine("n b > a > c");
            }

            if (b > a && a == c)
            {
                Console.WriteLine("n b > a = c");
            }

            if (b > c && c > a)
            {
                Console.WriteLine("n b > c > a");
            }

            if (b == c && c > a)
            {
                Console.WriteLine("n b = c > a");
            }

            /***************************************************************************/

            if (c > a && a > b)
            {
                Console.WriteLine("n c > a > b");
            }

            if (c > a && a == b)
            {
                Console.WriteLine("n c > a = b");
            }

            if (c > b && b > a)
            {
                Console.WriteLine("n c > b > a");
            }

            /*************************************************************************/

            if (a == b && b == c)
            {
                Console.WriteLine("n a = b = c ");
            }

            Console.ReadLine();

        }
    }
}

morringos

  • Miembro activo
  • **
  • Mensajes: 65
  • Nacionalidad: 00
    • Ver Perfil
Re: NUMERO MAYOR
« Respuesta #1 en: Viernes 1 de Octubre de 2010, 06:27 »
0
¿Por qué no intentas con arreglos bro, no crees que se te facilitará más el trabajo con arreglos? O intenta algo parecido, con método o algo por el estilo, porque utilizar 3 varaibles y estar colgando varios if para las posibilidades, tengo entendido que para saber el total de posibilidades de algo, es 2^n, donde "n" es el total de elementos a trabajar.
Intenta con arreglos bro y me dices qué tal te fué.


Saludos!;
Morringos Phyps!;  ^_^


breadpett

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: NUMERO MAYOR
« Respuesta #2 en: Viernes 1 de Octubre de 2010, 08:08 »
0
Gracias Bro, lo voy a intentar, un abrazo

tannke

  • Miembro MUY activo
  • ***
  • Mensajes: 152
  • Nacionalidad: es
    • Ver Perfil
Re: NUMERO MAYOR
« Respuesta #3 en: Viernes 1 de Octubre de 2010, 15:44 »
0
como te dijo morringos lo mas adecuado sería utilizar una Matriz para ingresar todos los números, sean 3 o 150..., y una vez ingresados los números en la matriz ordenarlos con el metodo de la burbuja o cualquier otro metodo de ordenación (si buscas en el foro hay varios ejemplos de estos metodos). Una vez hecho eso tendras tu matriz con los números ordenados de mayor a menor ( o como elijas). Y con esto ya tienes resuelto tus dos ejercicios, en el caso del primero solo imprimes en pantalla el primer número de la matriz, y en caso del segundo imprimes toda la matriz.

Con esto te ahorras poner tantos if. Saludos.

breadpett

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: NUMERO MAYOR
« Respuesta #4 en: Lunes 4 de Octubre de 2010, 01:44 »
0
Si es buena idea tannke, lo que podría hacer es guardar los datos del usuario en un array y despues ordenarlo con la función Sort, pero mi problema es que no se como guardar los números enteros que ingresa el usuario al array, si me pueden ayudar se los agradeceré, un abrazo!

morringos

  • Miembro activo
  • **
  • Mensajes: 65
  • Nacionalidad: 00
    • Ver Perfil
Re: NUMERO MAYOR
« Respuesta #5 en: Lunes 4 de Octubre de 2010, 09:08 »
0
Bueno, para ir almacenando, puedes utilizar una varibale contadora dentro de un ciclo para que vaya preguntando y vaya almacenando el número, te paso un código sencillo de ejemplo. Obviamente, no está validado ni nada por el estilo.

Código: C#
  1.  
  2. int[] arreglo = new int[3]; //Total de elementos empezando por el 0 (0,1,2)
  3.             for (sbyte i = 1; i <= 3; i++)
  4.             {
  5.                 Console.WriteLine("Ingrese el número: {0}", i.ToString());
  6.                 arreglo[i - 1] = Convert.ToInt32(Console.ReadLine());
  7.             }
  8.             Array.Sort(arreglo);
  9.            
  10.             Console.WriteLine("nn");
  11.             foreach (int elemento in arreglo)
  12.             {
  13.                 Console.WriteLine(elemento.ToString());
  14.             }
  15.  
  16.             Console.ReadKey();
  17.  
  18.  

Lo que hace es pedir los 3 números y después los despliega de menor a mayor. Espero y te sirva el ejemplo bro.

Saludos!;
Morringos Phyps!;  ^_^


breadpett

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: NUMERO MAYOR
« Respuesta #6 en: Lunes 4 de Octubre de 2010, 19:45 »
0
Muchas Gracias! Sos un Capo Morringos, un abrazo