Oi turma, tudo bem com vocês? Vamos a outro exercício que vai buscar o treino do uso dos comandos condicionais (Se e Senão). Também podemos utilizar um laço para nos ajudar. Borá Lá!
Faça um programa que solicite ao usuário digitar quatro números inteiros. O programa deverá mostrar na tela os 3 (três) maiores valores em ordem crescente!
Exemplo para teste
Caso o usuário informar os números 23, 16, 42 e 35 deverá ser mostrado na tela a mensagem “Os três maiores números em ordem crescente: 23, 35, 42”.
Adicionalmente podemos mostrar o número descartado: “Descarte: 16”
Resposta em Portugol – Com Portugol Studio
(* Criado pelo professor Giovani Da Cruz https://giovanidacruz.com.br *) program TresMaioresNumeros; var num1, num2, num3, num4: Integer; numeros: array[1..4] of Integer; i, j, aux: Integer; begin Write('Digite o primeiro número: '); ReadLn(num1); Write('Digite o segundo número: '); ReadLn(num2); Write('Digite o terceiro número: '); ReadLn(num3); Write('Digite o quarto número: '); ReadLn(num4); numeros[1] := num1; numeros[2] := num2; numeros[3] := num3; numeros[4] := num4; for i := 1 to 3 do begin for j := 1 to 4 - i do begin if numeros[j] > numeros[j + 1] then begin aux := numeros[j]; numeros[j] := numeros[j + 1]; numeros[j + 1] := aux; end; end; end; Write('Os três maiores números em ordem crescente: '); for i := 2 to 4 do begin Write(numeros[i], ' '); end; WriteLn; Write('Descarte: ', numeros[1]); WriteLn; end.
Explicação
num1
, num2
, num3
, num4
e menor
como do tipo inteiro.numeros
com tamanho 4 para armazenar os números fornecidos pelo usuário.num1
, num2
, num3
e num4
são atribuídos às posições correspondentes do array numeros
.for
aninhado para ordenar os elementos do array numeros
em ordem crescente. O algoritmo de ordenação usado é o Bubble Sort.
/* Criado pelo professor Giovani Da Cruz https://giovanidacruz.com.br */ #include <iostream> #include <algorithm> using namespace std; int main() { int num1, num2, num3, num4; cout << "Digite o primeiro número: "; cin >> num1; cout << "Digite o segundo número: "; cin >> num2; cout << "Digite o terceiro número: "; cin >> num3; cout << "Digite o quarto número: "; cin >> num4; int menor; menor = min(num1, num2); menor = min(num1, num3); menor = min(num1, num4); int numeros[] = {num1, num2, num3, num4}; int tamanho = sizeof(numeros) / sizeof(numeros[0]); sort(numeros, numeros + tamanho); cout << "Os três maiores números em ordem crescente: "; for (int i = tamanho - 3; i < tamanho; i++) { cout << numeros[i] << " "; } cout << endl << "Descarte: " << menor; cout << endl; return 0; }
''' Criado pelo professor Giovani Da Cruz https://giovanidacruz.com.br ''' num1 = int(input("Digite o primeiro número: ")) num2 = int(input("Digite o segundo número: ")) num3 = int(input("Digite o terceiro número: ")) num4 = int(input("Digite o quarto número: ")) menor = min(num1, num2, num3, num4) numeros = [num1, num2, num3, num4] numeros.sort() print("Os três maiores números em ordem crescente:", numeros[1:]) print("Descarte:", menor)
min()
para encontrar o menor valor entre os quatro números fornecidos. A variável menor
armazena esse valor.numeros
que contém os quatro números fornecidos pelo usuário.sort()
para ordenar os números da lista em ordem crescente.numeros[1:]
. Isso significa que estamos imprimindo os elementos da lista a partir do segundo elemento até o último.
/* Criado pelo professor Giovani Da Cruz https://giovanidacruz.com.br */ using System; class TresMaioresNumeros { static void Main() { int num1, num2, num3, num4; int menor; Console.Write("Digite o primeiro número: "); num1 = int.Parse(Console.ReadLine()); Console.Write("Digite o segundo número: "); num2 = int.Parse(Console.ReadLine()); Console.Write("Digite o terceiro número: "); num3 = int.Parse(Console.ReadLine()); Console.Write("Digite o quarto número: "); num4 = int.Parse(Console.ReadLine()); menor = Math.Min(num1, Math.Min(num2, Math.Min(num3, num4))); int[] numeros = { num1, num2, num3, num4 }; Array.Sort(numeros); Console.Write("Os três maiores números em ordem crescente: "); for (int i = numeros.Length - 3; i < numeros.Length; i++) { Console.Write(numeros[i] + " "); } Console.WriteLine(); Console.WriteLine("Descarte: " + menor); } }
/* Criado pelo professor Giovani Da Cruz https://giovanidacruz.com.br */ import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { int num1, num2, num3, num4; int menor; Scanner scanner = new Scanner(System.in); System.out.print("Digite o primeiro número: "); num1 = scanner.nextInt(); System.out.print("Digite o segundo número: "); num2 = scanner.nextInt(); System.out.print("Digite o terceiro número: "); num3 = scanner.nextInt(); System.out.print("Digite o quarto número: "); num4 = scanner.nextInt(); menor = Math.min(num1, Math.min(num2, Math.min(num3, num4))); int[] numeros = { num1, num2, num3, num4 }; Arrays.sort(numeros); System.out.print("Os três maiores números em ordem crescente: "); for (int i = numeros.length - 3; i < numeros.length; i++) { System.out.print(numeros[i] + " "); } System.out.println(); System.out.println("Descarte: " + menor); } }
Beleza Pessoal?
Dúvidas ou sugestão de outras linguagens? Deixe o seu comentário!
Um abraço e até o próximo post. Valeu!
Está gostando do conteúdo?
Considere pagar um cafezinho para nossa equipe!