(2) Crie duas funções que encontrem e retornem o valor máximo e o valor mínimo de um vector de inteiros. Preencha o vector no main.
Exemplo de entrada:
Entre com os valores do vector: 123456789
Exemplo de saída:
Valor máximo: 9
Valor mínimo: 1
Valor mínimo: 1
Passo 1
Beleza, o que o enunciado pede é: criar duas funções em C++ que, dado um
vector<int>, retornem o valor máximo e o valor mínimo. Esse assunto cai em: vetores (arrays dinâmicos), laços de repetição (for), comparações e criação de funções. Para resolver, vamos precisar de:- Saber ler entrada do usuário.
- Armazenar valores em um
std::vector<int>. - Fazer funções que recebam esse vetor (por referência) e percorram ele pra achar maior e menor.
Passo 2
Primeiro, a estrutura das funções. Uma função em C++ tem protótipo, corpo e retorna algo. Aqui queremos:
int encontraMax(const std::vector<int>& v);
int encontraMin(const std::vector<int>& v);
const std::vector<int>& vevita cópia e garante que não vamos modificar o vetor.- Ambas retornam um
int(o maior ou o menor).
Passo 3
Vamos implementar
encontraMax. A lógica é:- Inicializar
maxValorcom o primeiro elemento:maxValor = v[0]. - Percorrer cada elemento
do vetor (índices de 1 até v.size()-1). - Se
, atualiza maxValor = v_i. - No fim, retorna
maxValor.
Em código:
int encontraMax(const std::vector<int>& v) {
int maxValor = v[0];
for (size_t i = 1; i < v.size(); ++i) {
if (v[i] > maxValor) {
maxValor = v[i];
}
}
return maxValor;
}
Passo 4
Agora
encontraMin é o mesmo raciocínio, mas procurando o menor:minValor = v[0].- Para cada
, se , faz minValor = v_i. - Retorna
minValor.
Em código:
int encontraMin(const std::vector<int>& v) {
int minValor = v[0];
for (size_t i = 1; i < v.size(); ++i) {
if (v[i] < minValor) {
minValor = v[i];
}
}
return minValor;
}
Passo 5
No
main(), a gente vai:- Perguntar pro usuário:
Entre com os valores do vector:e ler uma string (tipo"123456789"). - Converter cada caractere em número com
c - '0'e darpush_backnostd::vector<int> v. - Chamar
encontraMax(v)eencontraMin(v). - Imprimir os resultados.
Resposta
#include <iostream>
#include <vector>
#include <string>
// Passo 3: função que encontra o valor máximo
int encontraMax(const std::vector<int>& v) {
int maxValor = v[0];
for (size_t i = 1; i < v.size(); ++i) {
if (v[i] > maxValor) {
maxValor = v[i];
}
}
return maxValor;
}
// Passo 4: função que encontra o valor mínimo
int encontraMin(const std::vector<int>& v) {
int minValor = v[0];
for (size_t i = 1; i < v.size(); ++i) {
if (v[i] < minValor) {
minValor = v[i];
}
}
return minValor;
}
int main() {
std::string entrada;
std::vector<int> v;
std::cout << "Entre com os valores do vector: ";
std::cin >> entrada;
// Preenche o vetor convertendo cada caractere em dígito
for (char c : entrada) {
v.push_back(c - '0');
}
int maximo = encontraMax(v);
int minimo = encontraMin(v);
std::cout << "Valor máximo: " << maximo << "\n";
std::cout << "Valor mínimo: " << minimo << "\n";
return 0;
}