杨辉三角,也称帕斯卡三角,是一个二项式系数在三角形排列中的视觉表示。在 C 语言中,
可以通过数组和循环结构来实现杨辉三角的生成和打印。以下是一个简单的 C 语言程序,用
于生成和打印前 10 行的杨辉三角:
```c
#include <stdio.h>
int main() {
int rows = 10, coef = 1, space, i, j;
// 打印前 10 行杨辉三角
for(i = 0; i < rows; i++) {
for(space = 1; space <= rows-i; space++) {
printf(" "); // 打印空格,用于格式化输出
}
for(j = 0; j <= i; j++) {
if (j == 0 || i == 0) {
coef = 1;
} else {
coef = coef * (i - j + 1) / j;
}
printf("%4d", coef); // 打印系数
}
printf(""); // 换行,打印下一行
}
return 0;
}
```
这个程序首先定义了要打印的杨辉三角的行数(在这个例子中是 10 行)。然后,它使用两个
嵌套的循环来生成和打印每一行。
外层循环(`for(i = 0; i < rows; i++)`)负责控制行数,内层的两个循环分别用于打印空格和系
数。
第一个内层循环(`for(space = 1; space <= rows-i; space++)`)在每行的开始打印适当数量的空
格,以便杨辉三角居中并保持良好的格式。
第二个内层循环(`for(j = 0; j <= i; j++)`)则负责计算和打印每个系数。系数的计算基于组合
数公式 `n! / (j! * (n-j)!)`,但由于杨辉三角的特性,我们可以通过简单的数学变换来优化计算
过程。每行的第一个和最后一个系数总是 1,其他系数可以通过前一个系数和前一行的相邻
系数来计算。