杨辉三角,也称帕斯卡三角,是一个二项式系数在三角形排列中的视觉表示。在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("\n"); // 换行,打印下一行
}
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,其他系数可以通过前一个系数和前一行的相邻系数来计算。
这个程序将打印出一个格式化的杨辉三角,其中每个数字占据4个字符宽度的位置,以便于观察和比较。
要运行这个程序,你需要将代码复制到一个文本文件中,保存为 `.c` 扩展名(例如 `pascals_triangle.c`),然后使用C语言编译器(如GCC)编译并运行它。