lunes, 15 de junio de 2026

Crear pirámide de asteriscos en C

Ejemplo: si ingresamos el número 5, nos dibujara una pirámide de asteriscos de 5 filas.

     *
    ***
   *****
  *******
 ********* 

Código del ejercicio:

#include <stdio.h>
#include <locale.h>

int main(){
    setlocale(LC_CTYPE, "Spanish");
    int num, lineaActual, espacio, asterisco;
    printf("Ingrese un número: ");
    scanf("%i", &num);
    for(lineaActual = 1; lineaActual <= num; lineaActual++){
        for(espacio = 0; espacio < num - lineaActual; espacio++){
            printf(" ");
        }
        for(asterisco = 0; asterisco < (lineaActual * 2) - 1; asterisco++){
            printf("*");
        }
        printf("\n");
    }
    return 0;
}

Definición de los códigos del ejercicio:

#include <stdio.h> --> significa "standard input-output header" (cabecera estándar E/S), es un archivo de encabezado que tiene la información necesaria para incluir las funciones relacionadas con la entrada/salida en nuestro programa. Ejemplo printf, scanf, etc.
#include <locale.h> --> especificador de configuración regional.
int --> dato entero de 32 bits.
main() --> es la primera función de cada programa C que es responsable de iniciar la ejecución y finalización del programa. Es una función especial que siempre comienza a ejecutar código desde el ' principal ' que tiene ' int ' o ' void ' como tipo de datos de retorno. En otras palabras, una función main() es un punto de entrada del código de programación para iniciar su ejecución.
return 0; --> devolver 0 en la función principal significa que el programa se ejecutó correctamente.
setlocale(); --> sirve para configurar nuestro programa acorde a los parámetros locales de la computadora donde se ejecuta el programa, uno de estos parámetros es el idioma.
LC_CTYPE --> selecciona la categoría de clasificación de caracteres del entorno local.
setlocale(LC_CTYPE, "Spanish"); --> dentro de las comillas del segundo parámetro colocaremos la palabra "Spanish" para que así se utilicen los parámetros hispanos por defecto.
printf() --> permite la aparición de valores numéricos, caracteres y cadenas de texto por pantalla.
scanf() --> permite entrar datos en la memoria del ordenador a través del teclado.
for --> el ciclo for recorre un bloque de código varias veces.
<= --> el operador menor o igual ( <= ) devuelve true si el operando izquierdo es menor o igual que el operando derecho, y en false caso contrario.
++ --> el operador de incremento ( ++ ) incrementa (suma uno a) su operando y devuelve un valor.
< --> el operador menor que ( < ) devuelve true si el operando izquierdo es menor que el operando derecho.
\n --> es el carácter de salto de línea y se usa para indicar el fin de una línea de texto y el inicio de una línea nueva.

Explicación del Código:

Código del Programa

#include <stdio.h>
#include <locale.h>

int main(){
    setlocale(LC_CTYPE, "Spanish");

    int num, lineaActual, espacio, asterisco;

    printf("Ingrese un número: ");
    scanf("%i", &num);

    for(lineaActual = 1; lineaActual <= num; lineaActual++){

        for(espacio = 0; espacio < num - lineaActual; espacio++){
            printf(" ");
        }

        for(asterisco = 0; asterisco < (lineaActual * 2) - 1; asterisco++){
            printf("*");
        }

        printf("\n");
    }

    return 0;
}

Explicación del Código

  • #include <stdio.h>
    Permite usar funciones como printf y scanf.
  • #include <locale.h>
    Permite configurar el idioma español en el programa.
  • int main()
    Es la función principal donde inicia el programa.
  • setlocale(LC_CTYPE, "Spanish");
    Configura el idioma español para mostrar caracteres correctamente.
  • int num, lineaActual, espacio, asterisco;
    Declara las variables del programa:
    • num: número de filas de la pirámide.
    • lineaActual: controla cada línea.
    • espacio: controla los espacios vacíos.
    • asterisco: controla los asteriscos.
  • printf("Ingrese un número: ");
    Solicita un número al usuario.
  • scanf("%i", &num);
    Guarda el número ingresado por el usuario.
  • for(lineaActual = 1; lineaActual <= num; lineaActual++)
    Recorre cada línea de la pirámide.
  • for(espacio = 0; espacio < num - lineaActual; espacio++)
    Imprime espacios antes de los asteriscos para centrar la pirámide.
  • printf(" ");
    Imprime un espacio vacío.
  • for(asterisco = 0; asterisco < (lineaActual * 2) - 1; asterisco++)
    Imprime los asteriscos de cada fila.

    La fórmula: (lineaActual * 2) - 1 genera números impares: 1, 3, 5, 7...
  • printf("*");
    Imprime un asterisco.
  • printf("\n");
    Realiza un salto de línea.
  • return 0;
    Finaliza correctamente el programa.

Resultado del Programa

Ingrese un número: 5

    *
   ***
  *****
 *******
*********

¿Qué Hace el Programa?

Este programa solicita un número al usuario y genera una pirámide de asteriscos con la cantidad de filas indicada.

En cada línea se imprimen espacios y asteriscos para formar una pirámide centrada.

No hay comentarios.:

Publicar un comentario

Un circo promociona sus funciones, otorgando boletas gratis a dos hermanos, si la suma de sus edades no suma más de 14 años. Determinar si entran “Gratis” o “Pagando”, al conocer sus edades en C

Código del ejercicio: #include <stdio.h> int main (){     int edad1, edad2, suma;     printf ( "Ingresar edad: ...

Copyright ©2025 Ejercicios de programación. Todos los derechos reservados. ❤️