Ejercicio 06 — Mostrar un triangulo de asteriscos de altura N
Dificultad: rojo · Módulo 03 (Bucles)
Enunciado
Mostrar un triangulo de asteriscos de altura N (leida por teclado).
Diagrama de flujo

Cómo se resuelve
Aquí aparece la gran idea de este módulo: los bucles anidados, un bucle dentro de otro. Para dibujar un triángulo de asteriscos, un solo bucle no basta, porque tenemos que manejar dos cosas a la vez: cuántas filas hay y cuántos asteriscos lleva cada fila.
- El bucle externo (
filade 1 an) controla las filas: da una vuelta por cada línea del triángulo. - Dentro de él, el bucle interno (
colde 1 afila) imprime los asteriscos de esa fila. La clave es que su límite esfila, non: en la fila 1 imprime 1 asterisco, en la fila 2 imprime 2, y así el triángulo crece. Cadaprintf("*")va sin salto de línea, para que los asteriscos queden pegados en horizontal. - Al terminar el bucle interno, pero todavía dentro del externo, un
printf("\n")cierra la fila y baja a la siguiente.
La trampa típica de los anidados es la colocación del salto de línea. Si pones el printf("\n") dentro del bucle interno, cada asterisco cae en una línea distinta y no se forma el triángulo; si lo pones fuera del bucle externo, todos los asteriscos salen en una única fila. El \n tiene que ir justo entre los dos bucles: después de cerrar el interno y antes de la siguiente vuelta del externo. Piensa siempre en el anidado como “el externo cuenta filas, el interno cuenta columnas”.
Para practicar — cópialo en Dev-C++
Pega este esqueleto y completa los TODO. Es la mejor forma de aprender: inténtalo antes de mirar la solución.
/*
* Curso de C — Modulo 03: Bucles
* Ejercicio 06 — PRACTICA (rellena los TODO)
* Enunciado: Mostrar un triangulo de asteriscos de altura N (leida por teclado).
* Dificultad: rojo
* Compilar: gcc -std=c11 -Wall ej06_practica.c -o ej06 && ./ej06
*
* Salida esperada para N=4:
* *
* **
* ***
* ****
*/
#include <stdio.h>
int main(void) {
int n;
// TODO 1: Pide la altura N al usuario y leela
// TODO 2: Bucle EXTERNO: variable 'fila' de 1 a n
// Cada iteracion representa una fila del triangulo
// TODO 3: Bucle INTERNO: variable 'col' de 1 a fila
// (la fila 1 tiene 1 asterisco, la fila 2 tiene 2, etc.)
// Imprime un '*' sin salto de linea: printf("*");
// TODO 4: Despues del bucle interno (pero dentro del externo),
// imprime un salto de linea: printf("\n");
return 0;
}Solución — cópiala y ejecútala
/*
* Curso de C — Modulo 03: Bucles
* Ejercicio 06 — MODELO (resuelto)
* Enunciado: Mostrar un triangulo de asteriscos de altura N (leida por teclado).
* Dificultad: rojo
* Compilar: gcc -std=c11 -Wall ej06_modelo.c -o ej06 && ./ej06
*
* Salida esperada para N=4:
* *
* **
* ***
* ****
*/
#include <stdio.h>
int main(void) {
int n;
printf("Altura del triangulo: ");
scanf("%d", &n);
if (n <= 0) {
printf("La altura debe ser un numero positivo.\n");
return 1;
}
// Bucle externo: cada iteracion es una fila
for (int fila = 1; fila <= n; fila++) {
// Bucle interno: imprime 'fila' asteriscos en la fila actual
for (int col = 1; col <= fila; col++) {
printf("*");
}
printf("\n"); // salto de linea al terminar la fila
}
return 0;
}Cómo usarlo
Dev-C++ (Windows): Archivo → Nuevo → Código fuente, pega el código y pulsa F11 (compilar y ejecutar). Si ves los acentos raros en la consola, escribe chcp 65001 y vuelve a ejecutar.