Menu
Coddy logo textTech

Ponteiro e Array Dinâmico

Parte da seção Lógica & Fluxo do Journey de C++ da Coddy — lição 56 de 56.

challenge icon

Desafio

Fácil

Crie um programa que demonstre o gerenciamento dinâmico de memória construindo um sistema flexível de armazenamento e processamento de números. Este desafio testará sua compreensão de arrays dinâmicos, alocação de memória, manipulação de arrays e limpeza adequada de memória.

As seguintes entradas serão fornecidas:

  • Um número inteiro size representando a quantidade de inteiros a serem armazenados
  • Em seguida, size inteiros representando os números a serem armazenados no array dinâmico

Seu programa deve:

  1. Ler o tamanho da entrada
  2. Alocar dinamicamente um array de inteiros usando new[] com o tamanho especificado
  3. Ler os inteiros da entrada e armazená-los no array alocado dinamicamente
  4. Calcular a soma de todos os números no array
  5. Encontrar o valor máximo no array
  6. Imprimir os resultados no formato especificado
  7. Desalocar adequadamente a memória usando delete[]

Use o seguinte formato de saída exato:

Array size: [size]
Sum: [sum_of_all_numbers]
Maximum: [maximum_value]

Lembre-se de que a alocação dinâmica de memória permite criar arrays cujo tamanho é determinado em tempo de execução com base na entrada do usuário. Use new int[size] para alocar o array e acesse os elementos usando a notação de array array[index]. Depois de terminar de usar o array, você deve chamar delete[] array para liberar a memória alocada e evitar vazamentos de memória. O array existe na heap e persistirá até que você o desaloque explicitamente.

Experimente você mesmo

#include <iostream>
using namespace std;

int main() {
    // Lê o tamanho do array
    int size;
    cin >> size;
    
    // TODO: Escreva seu código aqui
    // 1. Aloque dinamicamente um array usando new[]
    // 2. Leia os inteiros e armazene-os no array
    // 3. Calcule a soma de todos os números
    // 4. Encontre o valor máximo
    // 5. Não se esqueça de desalocar a memória usando delete[]
    
    // Exibe os resultados (substitua pelas variáveis reais)
    cout << "Array size: " << size << endl;
    cout << "Sum: " << /* variável sum */ << endl;
    cout << "Maximum: " << /* variável max */ << endl;
    
    return 0;
}

Todas as lições de Lógica & Fluxo