Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: edr89 en 6 Junio 2013, 06:55 AM

Título: [C] Imprimir Triangulo de Pascal
Publicado por: edr89 en 6 Junio 2013, 06:55 AM
Cambiar la impresion de un arreglo (C++) (http://foro.elhacker.net/buscador-t386860.0.html)

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:
Título: Re: [C] Imprimir Triangulo de Pascal
Publicado por: leosansan en 6 Junio 2013, 08:47 AM
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! .... ..
(http://st.forocoches.com/foro/images/smilies/aaaaa.gif)
Título: Re: [C] Imprimir Triangulo de Pascal
Publicado por: edr89 en 7 Junio 2013, 00:20 AM
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.
Título: Re: [C] Imprimir Triangulo de Pascal
Publicado por: leosansan en 7 Junio 2013, 09:27 AM
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:

(http://i1280.photobucket.com/albums/a497/leosansan/GRAFICOS1/Triangulopascal_zps4cf6d500.jpg)

Por el día de Canarias (http://i1280.photobucket.com/albums/a497/leosansan/CANARIAS/bandera_canaria_zpseaf59d8e.gif)