如何在不使用阶乘的情况下打印Pascal的三角形?

时间:2017-01-11 13:26:59

标签: c

我编写了一个在三角形的行中打印空格的函数,以及另一个在该行中打印数字的函数。我编译了代码,但由于某种原因,它没有提供所需的输出:

Pascal's Triangle

以下是我的功能:

void print_pascal_triangle(int n)
{
   int i = 0;

   while (i <= n)
   {
    print_space(i, n);
    print_pascal_line(n);
    i++;
    printf("\n");
   }
}

void print_pascal_line(int i)
{
   int k = 0, num = 1; 

   printf("1");

   while (k < i)
   {
    num = (num *(i-k))/(k+1); 
    printf(" %d", num);
    k++; 
   }

}

void print_space(int i, int n)
{
    int space=i;
    while (space < n) 
   {
   printf(" ");
   space++;
   }
}

这是我在n = 5时获得的输出:

Output

1 个答案:

答案 0 :(得分:3)

您需要致电print_pascal_line(i);而不是print_pascal_line(n);