Triangulo en lenguaje C, a ver si me podeis ayudar

Hola !!

Pues estoy ahora mismo en clase intentando hacer un ejercicio que nos van a pedir en practicamente cero coma.
ES intentar dibujar un triangulo de caracteres.
Os dejo lo que llevo de codigo, pero donde intento dibujar, no lo consigo, me sale un simple caracter y fuera, no dibuja nada...
¿¿¿Me podeis ayudar??? Esque me es importante

MUCHISIMAS GRACIAS !!!!

#include <stdio.h>
#define COLUMNAS 40

main()
{
      int a = 0, b = 1, c, ch;
      int FILAS;
     
      do
      {
       printf("Numero de filas entre 10 y 30: ");
       scanf("%d", &FILAS);
      }
       while (FILAS < 10 || FILAS > 30);
       
       for (c = 1; c < FILAS; c++);
       {
           int mover, d;
           printf("\n");
           for (mover = COLUMNAS/2; mover >= 0; mover--)
               printf("  ");
       
       for(d = 1; d <= b; d++) putchar('*');
             a++;
       for(d = 1; d < b; d++)
             putchar('*');
       b++;
       }
       getchar();
       getchar();
}
             
Ese ejercicio es de lo mas simple, cuando te manden hacer un arbol de cierta altura o un rombo o una casita... Lo estas planteando bien, pero te falta un poco de depuracion, lo mejor para sacar esos ejercicios es que en papel cuadriculado te dibujes el ejemplo y le saques la secuencia para pintar los caracteres.

No deberia pero aqui te dejo como deberia ser...espero que lo intentes tu antes de mirar la solucion:
#include <stdio.h>
#define COLUMNAS 40

main()
{
int c;
int FILAS;
int mover, d;

do
{
printf("Numero de filas entre 10 y 30: ");
scanf("%d", &FILAS);
}
while (FILAS < 10 || FILAS > 30);

for (c = 0; c < FILAS; c++);
{
FOR (MOVER = 0; MOVER < (COLUMNAS/2) - C; MOVER++)
PRINTF(" ");
FOR (D = 0; D < (C + 1); D++)
PRINTF("*");
PRINTF("\n");

/*
for (mover = COLUMNAS/2; mover >= 0; mover--)
printf(" ");

for(d = 1; d <= b; d++) putchar('*');
a++;
for(d = 1; d < b; d++)
putchar('*');
b++;
*/
}

getchar();
getchar();
}


Un Saludo y a currarselo.

PD: Te la doy porque somos alcalainos... [beer]
Gracias !!
Pues ahora probare con tu coddigo, por que haga como haga solo me sale medio triangulo (para un lado o para otro segun pruebe), voy a ver ;)
Bueno, nos hemos juntado algunos alcalaínos por aquí. Dejo por aquí una modificación que acabo de realizar del código de Nethunter, con menos variables ;)

#include <stdio.h>

main() {
    int altura, filas=0, mover;

    while (filas < 10 || filas > 30) {
        printf("Numero de filas entre 10 y 30: ");
        scanf("%d", &filas);
    }

    for (altura = filas; altura > 0; altura--) {
        for (mover = altura; mover > 0; mover--)
            printf(" ");
        for (mover = altura; mover <= filas; mover++)
            printf("**");
        printf("\n");

    }

}


Para que dibuje un triángulo rectángulo debes modificar el segundo printf para que solamente dibuje un asterisco ;)

Espero que te sirva.

Un saludo.

EDITO: Vaya, no me percaté de que este hilo tenía casi un mes y medio de antigüedad.
3 respuestas