Foro de elhacker.net

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?
Código
  1. #include<stdio.h>
  2.  
  3. int main()
  4. {
  5.    int i,j=1,k=1,tab,n=4; //i = renglones  j = elementos
  6.    long int elemento;
  7.    for(i=0;i<14;i++) //Renglones 0,1,2,3,4,5...
  8.    {
  9.        for(j=0;j<k;j++) //Renglon 0, elemento 1
  10.        {
  11.            elemento = (facto(i))/(facto(j)*(facto(i-j)));
  12.            printf("%d ",elemento);
  13.  
  14.        }
  15.        k++;
  16.        printf("\n");
  17.        n-=1;
  18.  
  19.    }
  20. }
  21.  
  22. facto(long long int num)
  23. {
  24.   int i=num;
  25.   long long fact=1;
  26.   for(i=num;i>1;i--)
  27.    {
  28.        fact*=i;
  29.    }
  30.    return fact;
  31. }
  32.  

Estaba intentando con:
Código
  1. for(tab=n;tab>0;tab--)
  2.        {
  3.            printf("\t");
  4.        }
pero queda mal, muy mal  :laugh:


Título: Re: [C] Imprimir Triangulo de Pascal
Publicado por: leosansan en 6 Junio 2013, 08:47 am
........................................................
Estaba intentando con:
Código
  1. for(tab=n;tab>0;tab--)
  2.        {
  3.            printf("\t");
  4.        }
pero queda mal, muy mal  :laugh:

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

Código
  1.  
  2.                                1
  3.                             1     1
  4.                          1     2     1
  5.                       1     3     3     1
  6.                    1     4     6     4     1
  7.                 1     5     8     8     5     1
  8.              1     6    15    16    15     6     1
  9.           1     7    18    30    30    18     7     1
  10.        1     8    28    36    60    36    28     8     1
  11.     1     9    32    84    72    72    84    32     9     1
  12.  
  13.  

Código
  1. #include<stdio.h>
  2.  
  3. int main()
  4. {
  5.    int i,j=1,k=1,tab,n=10; //i = renglones  j = elementos
  6.    long int elemento;
  7.    for (i = 0; i < n; i++)
  8.        {
  9.            for ( j = 1; j < n-i; j++)
  10.            printf ("   ")  ;
  11.            for (k = 0; k <= i; k++)
  12.                printf ("%6d",(facto(i))/(facto(k)*(facto(i-k))));
  13.            printf ("\n");
  14.        }
  15. }
  16. int facto(long long int num)
  17. {
  18.   int i=num;
  19.   long long fact=1;
  20.   for(i=num;i>1;i--)
  21.    {
  22.        fact*=i;
  23.    }
  24.    return fact;
  25. }
  26.  

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

Código
  1.            printf ("   ")  ;
  2.  
  3.            printf ("%6d",(facto(i))/(facto(k)*(facto(i-k))));
  4.  
  5. }
  6.  

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
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)