Encontrar el valor más grande de un arreglo en C y C++
En esta lección vas a encontrar el valor más grande de un arreglo comparando los elementos uno a uno.
Introducción
Para encontrar el valor más grande se usa una variable con el máximo visto hasta el momento, que se compara con cada elemento restante. Cada vez que aparece un elemento mayor, esa variable se actualiza.
Puntos importantes
- Activa los avisos del compilador (compiler warnings) y corrígelos todos.
- Entiende bien el tipo y la vida útil (lifetime) de cada valor.
- Comprueba siempre los datos de entrada y los límites de los índices de los arreglos.
Ejemplos de código C y C++
#include <stdio.h>
int main(void) {
int values[] = {-4, 7, 23, 9, 12}; int maximum = values[0];
// Compare every remaining value with the current maximum.
for (size_t i = 1; i < sizeof values / sizeof values[0]; ++i)
if (values[i] > maximum) maximum = values[i];
printf("max=%d\n", maximum);
}
max=23
#include <algorithm>
#include <iostream>
#include <vector>
int main() {
std::vector values{-4, 7, 23, 9, 12};
// max_element returns an iterator to the largest value.
std::cout << "max=" << *std::max_element(values.begin(), values.end()) << '\n';
}
max=23
Comparación entre C y C++
La variable maximum se inicializa con el primer elemento y no con 0. Así el programa sigue siendo correcto cuando el arreglo solo tiene números negativos, mientras que empezar en 0 daría un resultado incorrecto. El bucle empieza en el segundo elemento y actualiza maximum en cuanto aparece un valor mayor; el resultado es max=23.
C usa funciones procedurales pequeñas y muestra abiertamente cómo se representan los datos en memoria.
C++ sigue permitiendo trabajar a bajo nivel, pero añade tipos de biblioteca y abstracciones más seguras.
Ejercicios de práctica
Ejecuta las dos versiones y después modifica el código para ver la diferencia de seguridad que aporta cada lenguaje.
- Prueba entradas no válidas y valores límite.
- Compila con las opciones -Wall -Wextra -Wpedantic para activar más avisos.
- Pon las declaraciones comunes en un archivo de cabecera y la implementación en un archivo aparte.
Practica con un reto
Usa lo que cubre esta lección para resolver un problema real. Cada reto se ejecuta en el navegador, con pruebas al instante y una revisión de IA.
- Máximo de un Arreglo Encuentra el valor más grande en una lista. Fácil
- Count Positive Numbers Count the values greater than zero in a list. Fácil