CLR: .Net / Mono / Boo / Otros CLR > C#
NUMERO MAYOR
breadpett:
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:
¿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:
Gracias Bro, lo voy a intentar, un abrazo
tannke:
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:
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!
Navegación
[#] Página Siguiente
Ir a la versión completa