Ir al contenido principal

Como imprimir un triangulo isosceles con bucle while (Codigo en C)




/*
* Este programa imprime un triangulo con asteriscos, dada su base
la forma que imprime es similar  la siguiente:

 


NOTESE que los asteriscos aumentan: 1, en la siguiente fila 2, luego 3, y asi hasta la cantidad que pidamos

Esto es posible unicamente si se dejan espacios en medio de cada asterisco

Vea lo que pasa si NO SE DEJAN ESPACIOS entre asteriscos:

 

 Aqui parece no haber problemas
Como puede verse la forma y la secuencia de los numeros es distinta: 1,3,5, ... de dos en dos.
Y si la base del triangulo fuera par?

 


En este si, porque el primero esta o mas adelante o mas atras.

Pero ese no es el caso a  tratar esta ves.

Veremos el primer caso, el de la primera imagen
*/


#include <stdio.h>

int main (void)
{
    /*
    espacios es la cantidad de espacios que tendra
    asteriscos es la cantidad de asteriscos
    Y cant? vele cero para poder entrar en el while y no tener que escribir instrucciones innecesarias
    */

    int asteriscos,espacios,cant=0;
    /*
    cant es la base, o la cantidad de asteriscos que tendra en la ultima fila, por tanto debe ser > 0
    */

    while (cant<=0)
    {
        puts("Ingrese la base del triangulo isosceles: ");
            scanf("%d",&cant);
    }
    /*
    Supongase que se deben imprimir un triangulo cuya base sea 5 asteriscos, en 5 asteriscos debe haber 4 espacios por medio
    El primer asterisco debe ir en la posicion 5, pero para llegar ahi hay que imprimir 4 espacios antes.Por eso espacios vale cant-1 (5-1)


    */

    espacios=cant-1;
    asteriscos=1;//en la primera linea solo hay 1 asterisco
    //Con este contador contamos la cantidad de lineas impresas

    int contador=1;
    while(contador<=cant)//se hara desde 1 hsata la cantidad que digitamos
    {
        //cont_interno cuenta la cantidad de espacios impresos
        int cont_interno=1;
        while(cont_interno<=espacios)
        {
            printf(" ");
            cont_interno++;
        }
        espacios--;//los espacios disminuyen en 1
        cont_interno=1;//empezamos en 1 otra ves
        while(cont_interno<=asteriscos)
        {
            printf("* ");
            cont_interno++;
        }
        //luego de haber impreso la linea pasamos a la siguiente
        printf("\n");
        asteriscos++;//los sateriscos aumentan en 1
        contador++;//y este? Ya usted debe saber
    }
    getchar();
    return 0;
}

SITIOS RELACIONADOS

Freek Frees en Facebook
Universo Binario


Entradas populares de este blog

La funcion system (lenguaje C)

Un ejemplo de como utilizar la funcion system() contenida en stdlib.h En esta funcion podemos mandarle comandos al sistema operativo. La funcion systema acepta los mismos comandos que la consola (cma, simbolo del sistema, etc) #include <stdio.h> #include <stdlib.h> int main(void){ //le enviamos la orden que cambie el color del fondo. Acepta colores entre 1 y 99     system("color 3");     //con esta orden apagamos el equipo     system("shutdown /p");     //Hibernamos el equipo     system("shutdown /h");     /*Este comando sirve para quitar todos los atributos de los archivos,     Yo lo suelo usar para desocultar archivos y carpetas cuando los ocultan los virus*/     system("attrib /d /s -r -a -s -h -i");          /*Y en fin, si eres un experto en el cmd, podras hacer lo mismo con esta funcion system()  ...

El comando shutdown y sus opciones (Windows)

Microsoft Windows [Versión 6.1.7600] Copyright (c) 2009 Microsoft Corporation. Reservados todos los derechos. Uso: shutdown [/i | /l | /s | /r | /g | /a | /p | /h | /e] [/f] [/m \\equipo][/t xxx][/d [p|u:]xx:yy [/c "comentario"]]     El comando shutdown y lo que podemos hacer con él mediante la consola CMD.  En el proximo post mostraremos como utilizar este comando con sus parametros en un programa en C.  Sin argumentos Muestra la ayuda. Es lo mismo que escribir /?. /? Muestra la ayuda. Es lo mismo que no especificar ninguna opción. /i Muestra la interfaz gráfica de usuario (GUI). Debe ser la primera opción. /l Cierra la sesión. No se puede utilizar con las opciones /m o /d. /s Apaga el equipo. /r Apaga y reinicia el equipo. /g Cierra y reinicia el equipo. Después de reiniciar el sistema, reinicie las aplicaciones registradas. /a Anula el apaga...