Informática, perguntado por Gidah, 1 ano atrás

Faça um programa em c++ que leia 100 números e imprima os três maiores e os três menores?

Soluções para a tarefa

Respondido por Index
1
A princípio precisamos definir as etapas que o algoritmo deverá seguir, que são elas:
-Ler dados
-Determinar os maiores e menores
-Mostrar dados
Para determinar os maiores números usando apenas a estrutura de decisão (se e senão) podemos fazer assim:
int numero, maior1=0, maior2=0, maior3=0;

if(numero > maior1)
maior3 = maior2;
if(numero > maior1)
maior2 = maior1;
if(numero > maior1)
maior1 = numero;

Entretanto, não é possível - eu pelo menos desconheço algum método - determinar os menores números usando esse tipo de estrutura.
Você concorda que estamos tentando ordenar valores? Na programação, quando se trata de ordenar dados precisamos usar vetores.
No algoritmo abaixo serão ordenados os valores que o usuário digitar de forma crescente. Ex: 20, 10, 50, será ordenado para: 10, 20, 50.Assim as 3 primeiras posições correspondem aos números menores, e as 3 últimas os maiores.

Nesse algoritmo usei um #define para limitar a quantidade de números para que eu pudesse testar o código mais facilmente. Basta você mudar pra 100, e mudar também as últimas posições relativas aos números maiores para 100, 99, e 98
Anexos:

DennisRitchie: Index você fez em linguagem C e não em C++
Index: Veja a extensão do arquivo: é CPP. Não trabalho com C
DennisRitchie: é que funciona mesmo, mas a sintaxe é de C.
Index: Como seria então a sintaxe de C++?
Index: O C por exemplo, não usa printf e sim cout, scanf é o cin e etc. Se você me provar que eu estou errado, eu retiro o que disse
DennisRitchie: Você está confundindo. Tudo que você falou é o contrário.
DennisRitchie: printf e scanf são funções da biblioteca padrão de entrada e saída da linguagem C.
DennisRitchie: Mas ficou legal a sua resolução do exercício acima.
Perguntas interessantes