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;Desafío
FácilCrea una función llamada calculateStats que reciba un arreglo de doubles y el tamaño del arreglo como entrada y realice las siguientes operaciones:
- Calcula la suma de todos los elementos en el arreglo.
- Calcula el promedio de los elementos en el arreglo.
- Encuentra el elemento máximo en el arreglo.
- 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
sizepara controlar tu bucle — no usesstd::size(). - Para inicializar
maxymin, empiézalos enarr[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 usandonewy lo libera condelete[]— solo necesitas asignar el arreglo de resultados dentro de tu función usandonew double[4]y devolverlo.
Enfoque sugerido:
- Inicializa
sum = 0,max = arr[0]ymin = arr[0]. - Itera desde
i = 0hastai < size, acumulando la suma y actualizando max/min según sea necesario. - Calcula el promedio como
sum / size. - 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;
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Operadores Parte 1
Operadores aritméticosOperador móduloIncremento/DecrementoPost-incremento/decrementoAtajos aritméticosOperadores de comparaciónComparación de strings7Conceptos básicos de Entrada/Salida
Sentencia coutSentencia cinEntrada de cadenasResumen - Hasta 120Resumen - Verdadero o Falso5Operadores Parte 2
Operadores lógicos Parte 1Operadores lógicos Parte 2Repaso - Lógica simpleOperadores lógicos Parte 38Calculadora de números
Mensaje de bienvenidaObtención de números11Fundamentos de Arrays
Declaración de ArraysAcceso a elementosModificación de elementosRepaso - Imprimir Array con formatoArrays y funcionesRepaso - Producto de un ArrayRepaso - Array invertidoBucle for mejoradoOperaciones comunes con Arrays3Variables Parte 2
Declaración de tiposConvenciones de nomenclaturaResumen - Inicializar variablesType Casting Parte 1Type Casting Parte 26Toma de decisiones
Sentencia IfIf - ElseSentencia SwitchOperador condicionalRepaso - If ElseIf - Else anidados