如何用C语言实现杨辉三角的打印功能?
时间: 2024-12-29 11:30:04 浏览: 16
在C语言中,我们可以利用二维数组来存储并打印杨辉三角。杨辉三角是一个数列构成的图形,每个数字是它上面两个数字之和。以下是简单的步骤和示例代码:
1. 首先,定义一个大小为行数+1的二维数组`tri`,因为我们需要一个额外的空间来存储当前行。
2. 初始化数组,第一行和第一列都是1,其余位置为0,表示除了边界外其他位置的值为0。
3. 使用嵌套循环遍历数组,对于每一行,从左到右依次计算并打印元素。
4. 计算公式为:`tri[i][j] = tri[i - 1][j - 1] + tri[i - 1][j];`
5. 打印时,要注意控制空格和换行,使得输出看起来像杨辉三角的样子。
下面是简化的C代码实现:
```c
#include <stdio.h>
#define ROWS 10 // 可调整行数
void printPascalTriangle(int tri[ROWS][ROWS]) {
for (int i = 0; i <= ROWS; i++) { // 遍历行
for (int j = 0; j <= i; j++) { // 遍历列,注意边界条件
printf("%d ", tri[i][j]); // 输出数字
}
printf("\n"); // 换行
if (i != ROWS) { // 如果不是最后一行,加入空格
for (int k = 0; k < ROWS - i; k++)
printf(" "); // 消除左侧多余的空格
}
}
}
int main() {
int tri[ROWS][ROWS];
tri[0][0] = 1;
for (int i = 1; i < ROWS; i++) {
tri[i][0] = tri[i - 1][i - 1]; // 第一行除了第一个元素全为0
tri[i][i] = 1;
for (int j = 1; j < i; j++) {
tri[i][j] = tri[i - 1][j - 1] + tri[i - 1][j]; // 计算并更新当前元素
}
}
printPascalTriangle(tri);
return 0;
}
```
阅读全文