c - 如何在不使用阶乘的情况下打印帕斯卡三角形?

标签 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

最佳答案

您需要调用 print_pascal_line(i); 而不是 print_pascal_line(n);

关于c - 如何在不使用阶乘的情况下打印帕斯卡三角形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41592205/

相关文章:

arrays - 埃拉托色尼筛法

C编程: void * argument is it really pointer to anything,我可以在那里传递函数指针吗

c - 来自 helgrind 的分离 pthread 数据竞争

c - 为什么 fork 我的进程导致文件被无限读取

c - 展开循环并使用矢量化进行独立求和

c - bind() 返回权限被拒绝 C

c - 将字符串数组传递给函数段错误

c - 在 C 中的第五个字符后插入连字符

c++ - 优化 XML 文件中的标签搜索

c - 如何减少 C 应用程序中的 CPU 使用率?