用c语言写一个杨辉三角的代码
时间: 2024-12-25 10:24:29 浏览: 24
在 C 语言中编写一个简单的杨辉三角(Pascal's Triangle)生成器,可以利用嵌套循环来实现。杨辉三角是一个数学术语,每个数字是它上面两个数字之和,数组的形式通常从1开始。以下是一个基本的 C 代码示例:
```c
#include <stdio.h>
// 定义一个函数打印杨辉三角
void printPascalTriangle(int rows) {
for (int i = 0; i <= rows; ++i) {
// 每行开头和结尾都有一个1
printf("%d", 1);
// 内部元素通过上一行计算得出
for (int j = 1; j < i; ++j) {
printf(" %d", pascal_triangle[i - 1][j - 1]);
}
// 换行,除了最后一行
if (i != rows) {
printf("\n");
}
}
}
// 杨辉三角的动态内存分配和计算
int** pascal_triangle(int size) {
int** triangle = malloc(size * sizeof(int*));
// 分配每一行所需的内存
for (int i = 0; i < size; ++i) {
triangle[i] = malloc((i + 1) * sizeof(int));
triangle[i][0] = triangle[i][i] = 1;
}
// 计算并填充三角形
for (int row = 2; row < size; ++row) {
for (int col = 1; col < row; ++col) {
triangle[row][col] = triangle[row - 1][col - 1] + triangle[row - 1][col];
}
}
return triangle;
}
int main() {
int rows = 5; // 输出前五行
pascal_triangle(rows); // 初始化三角形
printPascalTriangle(rows);
// 清理内存
for (int i = 0; i < rows; ++i) {
free(triangle[i]);
}
free(triangle);
return 0;
}
```
运行这个程序会打印出前五行的杨辉三角。注意,这只是一个基础版本,实际应用中需要处理内存释放以避免内存泄漏。
阅读全文