Ejercicios de C/C++ para principiantes

El problema FizzBuzz en C y C++

En esta lección vas a mostrar Fizz, Buzz o FizzBuzz para los números del 1 al 15 con un bucle y sentencias condicionales.

Introducción

FizzBuzz es un ejercicio de programación clásico: para cada número del 1 al 15 se muestra Fizz si es divisible entre 3, Buzz si es divisible entre 5, FizzBuzz si es divisible entre ambos y, si no, el propio número. El ejercicio practica los bucles, el resto de la división y el orden de las condiciones.

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) {
    for (int n = 1; n <= 15; ++n) {
        // Check the most specific condition first.
        if (n % 15 == 0) puts("FizzBuzz");
        else if (n % 3 == 0) puts("Fizz");
        else if (n % 5 == 0) puts("Buzz");
        else printf("%d\n", n);
    }
}
Resultado de la ejecución
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
C++
Ejecutar →
main.cpp
#include <iostream>
int main() {
    for (int n = 1; n <= 15; ++n) {
        // Check the most specific condition first.
        if (n % 15 == 0) std::cout << "FizzBuzz\n";
        else if (n % 3 == 0) std::cout << "Fizz\n";
        else if (n % 5 == 0) std::cout << "Buzz\n";
        else std::cout << n << '\n';
    }
}
Resultado de la ejecución
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz

Comparación entre C y C++

La condición n % 15 == 0, es decir, divisible entre 3 y entre 5, debe comprobarse primero. Si se comprueba antes la divisibilidad entre 3, el 15 se mostrará como Fizz y nunca llegará a la rama FizzBuzz. Ordenar las condiciones de la más concreta a la más general es la clave de este ejercicio.

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