GARANTIR DESCONTO

Fórum 3 números em ordem crescente CSharp #597322

23/09/2018

0

C#

Não to conseguindo resolver um exercicio que pede pra receber três números e mostrar em ordem crescente. Supondo que o usuário digitará três números diferentes.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

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

int n1;
int meio = 0;
int maior = 0;
int menor = 0;
int i;


i = 0;
while (i <= 2)
{

Console.Write("Digite seu " + (i + 1) + "º número");
n1 = int.Parse(Console.ReadLine());

if(i==0)
{
maior = n1;
meio = n1;
menor = n1;
}


if (n1 > maior)
{
maior = n1;
}
if (n1 < menor)
{
menor = n1;
}
if(n1>menor && n1<maior)
{
meio = n1;
}
i++;
}
Console.WriteLine(menor + ", " + meio + ", " + maior);

Console.ReadKey();
}
}
}

O código não reconhece direito o número do meio não importa a ordem que eu insira os números
Cleberson Silva

Cleberson Silva

Responder

Posts

25/09/2018

Alex William

Use List<t> e manda ordenar:
List<int> _lista = new List<int>();

e onde diz:
n1 = int.Parse(Console.ReadLine());

substitui por:
_lista.Add(int.Parse(Console.ReadLine())


Depois disso, use o metodo Sort() da lista pra ordena-la em Crescente:
_lista.Sort();


E depois disso, use o comando Reverse() para inverter a ordem:
_lista.Reverse();


Seu código ficaria assim:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1 {
    class Program {
        static void Main(string[] args) {
            int i = 0;
            List<int> _lista = new List<int>();

            while (i <= 2) {

                Console.WriteLine("Digite seu " + (i + 1) + "º número");
                _lista.Add(int.Parse(Console.ReadLine()));

                i++;
            }
            // Aqui voce ordena e inverte a ordem
            _lista.Sort();
            _lista.Reverse();

            Console.WriteLine();
            Console.WriteLine("Os numeros digitados são:");

            foreach (int termo in _lista) {
                Console.WriteLine(termo);
            }
            Console.ReadKey();
        }
    }
}
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar