* 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