Programa para Ordenar os Elementos de Um Vetor
Utilizando a Linguagem C++, escreva um programa que receba do usuário um número inteiro positivo
, seguido de
números inteiros a serem armazenados em um vetor
. Assuma que o usuário poderá fornecer valores repetidos e não ordenados para
. Em seguida, o programa deve ordenar os elementos de
de forma crescente e, por fim, fazer a impressão do vetor na tela.
Veja abaixo alguns exemplos de possíveis entradas e as respectivas saídas esperadas para o programa.
Entrada
Saída Esperada
1
1
1
3
231
123
4
2321
1223
5
77777
77777
6
381749
134789
Entrada | Saída Esperada | ||
|
1 | ||
|
123 | ||
|
1223 | ||
|
77777 | ||
|
134789 |
Passo 1
O enunciado pede que a gente leia um inteiro positivo
e, em seguida,
números inteiros para um vetor
. Depois devemos ordenar
em ordem crescente e imprimir seus elementos na tela. O conteúdo aqui é manipulação de vetores e uso de algoritmo de ordenação em C
.
Passo 2
Para ler os dados em C
, incluímos os cabeçalhos
<iostream>
e <vector>
. Em int main()
fazemos:int n;
std::cin >> n;
std::vector<int> V(n);
for (int i \(=0\); i < n; \(++\)i) {
std::cin >> V[i];
}
Isso preenche o vetor
com os
valores fornecidos pelo usuário.
Passo 3
Para ordenar o vetor em ordem crescente usamos a função
std::sort
do cabeçalho <algorithm>
:#include <algorithm>
// ...
std::sort(V.begin(), V.end());
Esse algoritmo garante que todos os elementos de
V
ficarão do menor para o maior.Passo 4
Para imprimir o vetor conforme os exemplos (sem espaços entre os números), fazemos um loop escrevendo cada elemento em sequência:
for (int i \(=0\); i < n; \(++\)i) {
std::cout << V[i];
}
Podemos optar por não imprimir
'\n'
ao final ou inserir um std::cout << '\n';
se desejar quebra de linha.Resposta
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
int n;
std::cin >> n;
std::vector<int> V(n);
for (int i \(=0\); i < n; \(++\)i) {
std::cin >> V[i];
}
std::sort(V.begin(), V.end());
for (int i \(=0\); i < n; \(++\)i) {
std::cout << V[i];
}
return \(0\);
}