如何用C语言函数编写一个计算并打印杨辉三角的程序?
时间: 2024-12-10 07:42:56 浏览: 18
在C语言中,我们可以使用递归或者动态数组来构建杨辉三角。这里是一个简单的用递归方式实现的例子:
```c
#include <stdio.h>
// 定义一个用于存储当前行的数组
int triangle[100][100];
// 递归函数打印杨辉三角
void printPascal(int row) {
// 避免数组越界
if (row > 0 && row < 100) {
// 打印左侧的1
printf("%d", triangle[row - 1][0]);
for (int i = 1; i < row; ++i) {
// 计算并打印中间的数
printf(" %d", triangle[row - 1][i] = triangle[row - 2][i - 1] + triangle[row - 2][i]);
}
// 结束这一行后打印右侧的1
printf(" %d\n", triangle[row - 1][row - 1]);
// 递归调用自身处理下一行
printPascal(row + 1);
}
}
int main() {
// 初始化第一行
triangle[0][0] = 1;
// 打印前几行杨辉三角
printPascal(1); // 第一行:1
printPascal(2); // 第二行:1 1
printPascal(3); // 第三行:1 2 1
return 0;
}
```
这个程序首先初始化了一个1x1的三角形,并通过递归调用`printPascal`函数来生成更多的行。每一行的每个数字都是上一行两个对应位置数字之和。
阅读全文