Menu
Coddy logo textTech

Operaciones comunes con Arrays

Parte de la sección Fundamentos del Journey de C++ de Coddy — lección 66 de 74.

Aquí hay algunas operaciones comunes con arrays:

  • Encuentra la suma de todos los elementos en un array:
int numbers[] = {1, 2, 3, 4, 5};
int sum = 0;
for (int number : numbers) {
    sum += number;
}
std::cout << "Sum: " << sum;
  • Encuentra el promedio de los elementos en un arreglo:
int numbers[] = {1, 2, 3, 4, 5};
double sum = 0;
for (int number : numbers) {
    sum += number;
}
double average = sum / std::size(numbers);
std::cout << "Average: " << average;
  • Encuentra el elemento máximo en un array:
int numbers[] = {1, 5, 2, 9, 3};
int max = numbers[0];
for (int i = 1; i < std::size(numbers); i++) {
    if (numbers[i] > max) {
        max = numbers[i];
    }
}
std::cout << "Max: " << max;
  • Encuentra el elemento mínimo en un array:
int numbers[] = {1, 5, 2, 9, 3};
int min = numbers[0];
for (int i = 1; i < std::size(numbers); i++) {
    if (numbers[i] < min) {
        min = numbers[i];
    }
}
std::cout << "Min: " << min;
challenge icon

Desafío

Fácil

Crea una función llamada calculateStats que reciba un arreglo de doubles y el tamaño del arreglo como entrada y realice las siguientes operaciones:

  1. Calcula la suma de todos los elementos en el arreglo.
  2. Calcula el promedio de los elementos en el arreglo.
  3. Encuentra el elemento máximo en el arreglo.
  4. Encuentra el elemento mínimo en el arreglo.

La función debe devolver un arreglo de doubles que contenga la suma, el promedio, el máximo y el mínimo, en ese orden.


Notas importantes:
  • Usa el parámetro size para controlar tu bucle — no uses std::size().
  • Para inicializar max y min, empiézalos en arr[0] — esto funciona correctamente incluso cuando el arreglo contiene solo números negativos.
  • El código preescrito en main() ya asigna un arreglo dinámico usando new y lo libera con delete[] — solo necesitas asignar el arreglo de resultados dentro de tu función usando new double[4] y devolverlo.

Enfoque sugerido:
  1. Inicializa sum = 0, max = arr[0] y min = arr[0].
  2. Itera desde i = 0 hasta i < size, acumulando la suma y actualizando max/min según sea necesario.
  3. Calcula el promedio como sum / size.
  4. Asigna un nuevo arreglo con new double[4], almacena los cuatro resultados en orden y devuélvelo.

Hoja de referencia

Operaciones comunes con arreglos en C++:

Suma de todos los elementos:

int numbers[] = {1, 2, 3, 4, 5};
int sum = 0;
for (int number : numbers) {
    sum += number;
}

Promedio de los elementos:

int numbers[] = {1, 2, 3, 4, 5};
double sum = 0;
for (int number : numbers) {
    sum += number;
}
double average = sum / std::size(numbers);

Elemento máximo:

int numbers[] = {1, 5, 2, 9, 3};
int max = numbers[0];
for (int i = 1; i < std::size(numbers); i++) {
    if (numbers[i] > max) {
        max = numbers[i];
    }
}

Elemento mínimo:

int numbers[] = {1, 5, 2, 9, 3};
int min = numbers[0];
for (int i = 1; i < std::size(numbers); i++) {
    if (numbers[i] < min) {
        min = numbers[i];
    }
}

Pruébalo tú mismo

#include <iostream>

double* calculateStats(double arr[], int size) {
    // Necesitarás calcular 4 valores antes de almacenarlos en newArr
    // Inicializa variables para sum (empieza en 0), max y min (ambas empiezan en arr[0])
    // Usa un bucle for para iterar a través del arreglo
    // Dentro del bucle:
    //   - Suma cada elemento a sum
    //   - Compara cada elemento con max y actualiza si es mayor
    //   - Compara cada elemento con min y actualiza si es menor
    // Calcula average = sum / size (después del bucle)
    

    double* newArr = new double[4];
    newArr[0] = sum;
    newArr[1] = average;
    newArr[2] = max;
    newArr[3] = min;

    return newArr;
}

int main() {
    int n;

    std::cin >> n;
    std::cin.ignore();
    double arr[n];

    for (int i = 0; i < n; i++) {
        double val;
        std::cin >> val;
        arr[i] = val;
    }

    double* stats = calculateStats(arr, n);
    std::cout << "Sum: " << stats[0] << std::endl;
    std::cout << "Average: " << stats[1] << std::endl;
    std::cout << "Maximum: " << stats[2] << std::endl;
    std::cout << "Minimum: " << stats[3] << std::endl;
    delete[] stats;
    return 0;
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos