Buenas noches.
Necesito generar un programa con while que de como resultado una figura similar a la siguiente:
* *
** **
*** ***
**** ****
***** *****
************
***** *****
**** ****
*** ***
** **
* *
Ya logre generar la primera mitad del triangulo con el siguiente codigo;
int main(int argc, char *argv[]) {
int a=1,b=1;
while(a<=10){
b=1;
while(b<=a){
printf("*");
b++;
}
a++;
printf("\n");
}
while(a>=1){
b=1;
while(b<=a){
printf("*");
b++;
}
a--;
printf("\n");
}
system("PAUSE");
return 0;
Pero por mas que intento no puedo generar la mitad derecha, alguien me podría ayudar a darme una idea o alguna pista de que tengo que hacer para generar la mitad derecha?, gracias.
recuerda usar las etiquetas GeShi para la publicación de código
si lo quieres hacer exclusivamente con whiles porque es una tarea o algo así
tienes que hacer 2 partes de 3 secciones
la primera parte es la mitad de arriba
la primera sección imprime los asteriscos
b=1;
while(b<=a){
printf("*");
b++;
}
la segunda sección imprime los espacios reiniciando tu contador (b) y la cantidad de espacios es igual al largo -2 por linea (cada linea tiene 2 asteriscos extras)
b=1;
while(b<=10-(a*2)){
printf(" ");
b++;
}
la tercera sección imprime la misma cantidad de asteriscos (repito la primera sección)
b=1;
while(b<=a){
printf("*");
b++;
}
luego te toca repetir esto en la segunda parte pero al contrario (la mitad de abajo)
espero te sirva, si tienes dudas pregunta
Cita de: Boss3120 en 17 Septiembre 2014, 02:22 AM
Pero por mas que intento no puedo generar la mitad derecha, alguien me podría ayudar a darme una idea o alguna pista de que tengo que hacer para generar la mitad derecha?
Puedes generar la figura completa de la siguiente manera :
int i = -5, j = 0;
while(i <= 5)
{
j = -5;
while( j <= 5)
{
printf("%c", abs(i) <= abs(j) ? '*' : ' ');
j++;
}
putchar('\n');
i++;
}
Usando la función
abs con la cual vamos dibujando las dos figuras juntas al mismo tiempo..
Un Saludo