Ejercicios de C/C++ para principiantes

Calcular el MCD en C y C++

En esta lección vas a encontrar el máximo común divisor (MCD) de dos enteros con el algoritmo de Euclides.

Introducción

El máximo común divisor (MCD) de dos números es el mayor número que divide a ambos. El algoritmo de Euclides encuentra el MCD sustituyendo una y otra vez la pareja (a, b) por (b, resto de dividir a entre b), hasta que el resto vale 0.

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++

C
Ejecutar →
main.c
#include <stdio.h>
int main(void) {
    int left = 48, right = 18;
    // Reduce the pair until no remainder remains.
    while (right) { int remainder = left % right; left = right; right = remainder; }
    printf("gcd=%d\n", left);
}
Resultado de la ejecución
gcd=6
C++
Ejecutar →
main.cpp
#include <iostream>
#include <numeric>
int main() {
    // std::gcd implements Euclid's algorithm.
    std::cout << "gcd=" << std::gcd(48, 18) << '\n';
}
Resultado de la ejecución
gcd=6

Comparación entre C y C++

En cada vuelta, el programa calcula remainder = left % right y luego asigna left = right y right = remainder. Cuando right vale 0, el valor que queda en left es el MCD. Para 48 y 18, el resultado es gcd=6.

C

C usa funciones procedurales pequeñas y muestra abiertamente cómo se representan los datos en memoria.

C++

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.

Todos los retos