Menu
Coddy logo textTech

Punteros y arrays dinámicos

Parte de la sección Lógica y Flujo del Journey de C++ de Coddy — lección 56 de 56.

challenge icon

Desafío

Fácil

Crea un programa que demuestre la gestión dinámica de memoria construyendo un sistema flexible de almacenamiento y procesamiento de números. Este desafío pondrá a prueba tu comprensión de los arreglos dinámicos, la asignación de memoria, la manipulación de arreglos y la limpieza adecuada de la memoria.

Se proporcionarán las siguientes entradas:

  • Un número entero size que representa la cantidad de enteros a almacenar
  • Luego, size enteros que representan los números que se almacenarán en el arreglo dinámico

Tu programa debe:

  1. Leer el tamaño desde la entrada
  2. Asignar dinámicamente un arreglo de enteros usando new[] con el tamaño especificado
  3. Leer los enteros desde la entrada y almacenarlos en el arreglo asignado dinámicamente
  4. Calcular la suma de todos los números en el arreglo
  5. Encontrar el valor máximo en el arreglo
  6. Imprimir los resultados en el formato especificado
  7. Desasignar adecuadamente la memoria usando delete[]

Utiliza exactamente el siguiente formato de salida:

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

Recuerda que la asignación dinámica de memoria te permite crear arreglos cuyo tamaño se determina en tiempo de ejecución basándose en la entrada del usuario. Usa new int[size] para asignar el arreglo y accede a los elementos usando la notación de arreglos array[index]. Una vez que hayas terminado de usar el arreglo, debes llamar a delete[] array para liberar la memoria asignada y prevenir fugas de memoria. El arreglo existe en el heap y persistirá hasta que lo desasignes explícitamente.

Pruébalo tú mismo

#include <iostream>
using namespace std;

int main() {
    // Leer el tamaño del arreglo
    int size;
    cin >> size;
    
    // TODO: Escribe tu código aquí
    // 1. Asignar dinámicamente un arreglo usando new[]
    // 2. Leer los enteros y almacenarlos en el arreglo
    // 3. Calcular la suma de todos los números
    // 4. Encontrar el valor máximo
    // 5. No olvides liberar la memoria usando delete[]
    
    // Mostrar los resultados (reemplazar con variables reales)
    cout << "Array size: " << size << endl;
    cout << "Sum: " << /* variable de suma */ << endl;
    cout << "Maximum: " << /* variable de máximo */ << endl;
    
    return 0;
}

Todas las lecciones de Lógica y Flujo