Algoritmo en C Sharp

Tiempo atrás llevé el curso de Sistemas Operativos, donde aprendí a codificar scripts ubunteros en aquellas clases la profesora nos enseñaba programación básica en bash, de todos los ejercicios que dejó, uno de ellos no pude resolver a tiempo, sin embargo encontré la solución al día siguiente mientras estaba conversando con una de mis amigas, pues gracias a las palabras que ella me dijo: “Piensa en qué necesitas, luego ves cómo haces“, las ideas llegaron a mi mente de una manera alucinante, recordé la clase de simulación de algoritmos del curso de matemática discreta, con cuaderno abierto y lapicero en mano, jugué con algunas variables, pensé cómo resolver el ejercicio desde otro punto de vista y listo!!!  Veamos el resultado del análisis del enunciado…

El enunciado: “Ingresar 3 números, determinar el mayor, intermedio y menor, luego reportarlos”. En este caso tenemos 3 posibilidades con la recepción de datos: la primera es que los números ingresados sean iguales y damos con un empate técnico, la segunda es que 2 números sean iguales y nos quedamos sin intermedio, la tercera es el ingreso de números diferentes, las ideas del algoritmo son las siguiente:

  • Establecer un arreglo de 3 variables [0-1-2].
  • Leer los datos para ingresarlos al arreglo.
  • El mayor y el menor será el primer valor del arreglo [0].
  • Encontramos al mayor y menor recorriendo el arreglo preguntando si el mayor[número] es mayor que el mayor[actual], de ser verdad, asignamos el nuevo valor al mayor[número]; hacemos la misma jugada para encontrar el menor.
  • El intermedio tiene que ser menor que el mayor y a su vez mayor que el menor.
  • Si el mayor es igual que el intermedio y al mismo tiempo es igual que el menor, obtenemos el empate.
  • Finalmente se reportan los resultados.

Y bueno, aquí está es su codificación en C#:

using System;

namespace algoritmo
{
    class Program
    {
        static void Main(string[] args)
        {
            //Declaramos las variables:
            int[] numeros = new int[3];
            int mayor, menor;
            int intermedio = new int();

            //Asignamos valores al arreglo:
            Console.WriteLine("Ingreso de números");
            Console.WriteLine("------------------");
            for (int i = 0; i < numeros.Length; i++)
            {
                Console.Write("Elemento[" + i + "] : ");
                numeros[i] = Int32.Parse(Console.ReadLine());
            }

            //Definimos el punto de partida:
            mayor = numeros[0];
            menor = numeros[0];

            //Vamos en busca del mayor y del menor:
            for (int i = 0; i < numeros.Length; i++)
            {
                if (numeros[i] > mayor) mayor = numeros[i];
                if (numeros[i] < menor) menor = numeros[i];
            }

            //Determinamos al número intermedio:
            for (int i = 0; i < numeros.Length; i++)
            {
                //Con 3 números diferentes tenemos al intermedio
                if ((mayor > numeros[i]) && (menor < numeros[i]))
                    intermedio = numeros[i];
                //Empate técnico:
                if ((mayor == numeros[i]) && (menor == numeros[i]))
                    intermedio = numeros[i];
            }

            Console.WriteLine("\nReportando resultados:");
            Console.WriteLine("-----------------------");
            Console.WriteLine("El mayor: " + mayor);
            Console.WriteLine("El intermedio: " + intermedio);
            Console.WriteLine("El menor: " + menor);
            Console.ReadKey();
        }
    }
}

Espero les haya sido de utilidad, que tengan un buen día!
Saludos!