Fórum 3 números em ordem crescente CSharp #597322
23/09/2018
0
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
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
Curtir tópico
+ 0
Responder
Posts
25/09/2018
Alex William
Use List<t> e manda ordenar:
e onde diz:
substitui por:
Depois disso, use o metodo Sort() da lista pra ordena-la em Crescente:
E depois disso, use o comando Reverse() para inverter a ordem:
Seu código ficaria assim:
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
Clique aqui para fazer login e interagir na Comunidade :)