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
numbajó 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 usarreturn 0;para indicar que el programa se ejecutó sin errores. - Experimentación: ¿Qué pasaría si cambias
printf("%d", cont);porprintf("*");? ¡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!

