如何用C语言实现杨辉三角的打印算法?
时间: 2024-12-02 07:18:45 浏览: 55
在C语言中,杨辉三角是一个经典的动态规划问题,可以通过二维数组来存储每一行的数字,并利用递归或者迭代的方式来填充这个数组。以下是使用C语言实现杨辉三角打印的一个简单示例:
```c
#include <stdio.h>
// 数组大小
#define SIZE 10
// 打印杨辉三角的函数
void printPascalTriangle(int tri[SIZE][SIZE], int row) {
for (int i = 0; i <= row; ++i) {
// 每一行的第一个和最后一个元素是1
printf("%d ", tri[i][0]);
// 输出中间的元素,每个元素等于上一行两个对应位置元素之和
for (int j = 1; j < i; ++j)
printf("%d ", tri[i - 1][j] + tri[i - 1][j - 1]);
// 行结束符
printf("%d\n", tri[i][i]);
}
}
// 初始化杨辉三角
void fillPascalTriangle(int tri[SIZE][SIZE], int n) {
tri[0][0] = 1;
for (int i = 1; i < n; ++i) {
tri[i][0] = tri[i - 1][i - 1];
tri[i][i] = tri[i - 1][i - 1];
// 计算中间的元素
for (int j = 1; j < i; ++j)
tri[i][j] = tri[i - 1][j - 1] + tri[i - 1][j];
}
}
int main() {
int tri[SIZE][SIZE]; // 初始化二维数组
int rows = SIZE; // 杨辉三角的行数
fillPascalTriangle(tri, rows);
printPascalTriangle(tri, rows); // 打印三角形
return 0;
}
```
在这个程序中,`fillPascalTriangle` 函数用于填充杨辉三角,而 `printPascalTriangle` 则负责按行打印出来。
阅读全文
相关推荐


















