(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

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>& v evita 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 é:
  1. Inicializar maxValor com o primeiro elemento: maxValor = v[0].
  2. Percorrer cada elemento vi do vetor (índices de 1 até v.size()-1).
  3. Se vi > maxValor, atualiza maxValor = v_i.
  4. 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:
  1. minValor = v[0].
  2. Para cada vi, se vi < minValor, faz minValor = v_i.
  3. 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:
  1. Perguntar pro usuário: Entre com os valores do vector: e ler uma string (tipo "123456789").
  2. Converter cada caractere em número com c - '0' e dar push_back no std::vector<int> v.
  3. Chamar encontraMax(v) e encontraMin(v).
  4. 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;
}

Exercícios relacionados