Dominando los Bucles Anidados en C: El Arte de Dibujar con Números

Se tiene el siguiente programa en lenguaje de programación C. Escriba lo que mostrará el programa si ejecuta el código.


Esta cuestión apareció en la prueba práctica del examen de oposiciones para profesor de Tecnología en Castilla y León 2025.

Si estás dando tus primeros pasos en el mundo de la programación en C, es muy probable que te hayas topado con el concepto de los bucles o ciclos. Pero, ¿qué pasa cuando ponemos un bucle dentro de otro? Hoy vamos a analizar un ejercicio clásico que todo desarrollador debe conocer: la creación de patrones numéricos.

El Reto: Un Triángulo Numérico Invertido

Imagina que necesitas imprimir una secuencia de números que se va reduciendo línea tras línea. Para lograrlo, no escribimos cada número a mano; utilizamos la potencia de los bucles anidados.

El Código de Referencia

Observemos el siguiente fragmento de código:

#include <stdio.h>

int main() {
    int num, cont;

    // Bucle externo: controla las filas
    for(num = 9; num >= 1; num--) {
        
        // Bucle interno: controla qué se imprime en cada fila
        for(cont = 1; cont <= num; cont++) {
            printf("%d", cont);
        }
        
        // Salto de línea al terminar cada fila
        printf("\n");
    }

    return 0; 
}

¿Cómo funciona la «Magia»?

La clave aquí es la relación de dependencia entre las dos variables: num y cont.

1. El Bucle Externo (num)

Este es el director de orquesta. Empieza en 9 y cuenta hacia atrás hasta llegar a 1. Su función principal es determinar cuántos elementos se deben imprimir en la línea actual. Cada vez que este bucle da una vuelta, saltamos a una «nueva línea».

2. El Bucle Interno (cont)

Este es el ejecutor. En cada fila, este bucle comienza siempre desde 1, pero su límite de llegada es el valor actual de num.

  • En la primera vuelta, imprime del 1 al 9.
  • En la segunda, como num bajó a 8, imprime del 1 al 8.
  • Y así sucesivamente hasta que solo imprime el 1.

El Resultado en Pantalla

Al ejecutar este programa, la consola nos devuelve una estructura visualmente organizada y decreciente:

123456789
12345678
1234567
123456
12345
1234
123
12
1

Tips Pro para Principiantes

  • Identación: Mantén siempre el código de adentro hacia la derecha. Esto ayuda a ver qué «pertenece» a qué bucle.
  • El valor de retorno: Aunque el código original usaba return 1;, es una buena práctica usar return 0; para indicar que el programa se ejecutó sin errores.
  • Experimentación: ¿Qué pasaría si cambias printf("%d", cont); por printf("*");? ¡Felicidades, acabas de crear un generador de triángulos de asteriscos!

¿Te ha servido esta explicación? Si quieres aprender a invertir este triángulo o crear pirámides más complejas, ¡déjalo en los comentarios!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio