[C] Imprimir Triangulo de Pascal

Iniciado por edr89, 6 Junio 2013, 06:55 AM

0 Miembros y 1 Visitante están viendo este tema.

edr89

Cambiar la impresion de un arreglo (C++)

Como puedo imprimir las tabulaciones para darle forma al triangulo en C?
#include<stdio.h>

int main()
{
    int i,j=1,k=1,tab,n=4; //i = renglones  j = elementos
    long int elemento;
    for(i=0;i<14;i++) //Renglones 0,1,2,3,4,5...
    {
        for(j=0;j<k;j++) //Renglon 0, elemento 1
        {
            elemento = (facto(i))/(facto(j)*(facto(i-j)));
            printf("%d ",elemento);

        }
        k++;
        printf("\n");
        n-=1;

    }
}

facto(long long int num)
{
   int i=num;
   long long fact=1;
   for(i=num;i>1;i--)
    {
        fact*=i;
    }
    return fact;
}


Estaba intentando con:
for(tab=n;tab>0;tab--)
        {
            printf("\t");
        }

pero queda mal, muy mal  :laugh:

leosansan

Cita de: edr89 en  6 Junio 2013, 06:55 AM
........................................................
Estaba intentando con:
for(tab=n;tab>0;tab--)
        {
            printf("\t");
        }

pero queda mal, muy mal  :laugh:

Sniff, sniff. La verdad que queda pochito. Mejor se vería así:

Código (cpp) [Seleccionar]
           
                                1
                             1     1
                          1     2     1
                       1     3     3     1
                    1     4     6     4     1
                 1     5     8     8     5     1
              1     6    15    16    15     6     1
           1     7    18    30    30    18     7     1
        1     8    28    36    60    36    28     8     1
     1     9    32    84    72    72    84    32     9     1



Código (cpp) [Seleccionar]
#include<stdio.h>

int main()
{
    int i,j=1,k=1,tab,n=10; //i = renglones  j = elementos
    long int elemento;
    for (i = 0; i < n; i++)
        {
            for ( j = 1; j < n-i; j++)
            printf ("   ")  ;
            for (k = 0; k <= i; k++)
                printf ("%6d",(facto(i))/(facto(k)*(facto(i-k))));
            printf ("\n");
        }
}
int facto(long long int num)
{
   int i=num;
   long long fact=1;
   for(i=num;i>1;i--)
    {
        fact*=i;
    }
    return fact;
}


Saluditos! .... ..

edr89

Cita de: leosansan en  6 Junio 2013, 08:47 AM


            printf ("   ")  ;
           
            printf ("%6d",(facto(i))/(facto(k)*(facto(i-k))));

}


Gracias, quedo chulo, la clave esta en %6 y 3 espacios, me olvide por completo del formato con espacios al imprimir :-[

Tenia una variable que era el elemento del renglon pero veo que no hay necesidad de definirla, basta con realizar las operaciones directamente en printf(); Por alguna razon pensé que seria util tener el dato de la casilla pero nunca se usa, solo se imprime y ya.

Saludos.

leosansan

Cita de: edr89 en  7 Junio 2013, 00:20 AM
Gracias, quedo chulo, la clave esta en %6 y 3 espacios, me olvide por completo del formato con espacios al imprimir :-[


Lástima que con ese código aunque pongas n=20 no puedas ver esto:


Por el día de Canarias