给出n(n≤20),输出杨辉三角的前n行 C语言
时间: 2024-10-10 18:02:08 浏览: 44
在C语言中,我们可以使用嵌套循环结构来构建杨辉三角(Pascal's Triangle)。杨辉三角是一个数组型的结构,每一行都是由上一行的数字通过加法得到的,特点是每个数字等于其上方两个数字之和。
下面是一个简单的C程序,它会打印出前n行的杨辉三角:
```c
#include <stdio.h>
// 打印第i行的杨辉三角
void printRow(int row[], int n) {
for (int j = 0; j <= n; j++) {
printf("%d ", row[j]);
}
printf("\n");
}
// 生成并存储前n行的杨辉三角
void generatePascalTriangle(int n) {
int** triangle = (int **)malloc(n * sizeof(int *));
// 分配空间给每一行
for (int i = 0; i < n; i++) {
triangle[i] = (int *)malloc((i + 1) * sizeof(int));
triangle[i][0] = triangle[i][i] = 1;
if (i > 0) {
for (int j = 1; j < i; j++) {
triangle[i][j] = triangle[i - 1] + triangle[i - 1][j];
}
}
}
// 打印所有行
for (int i = 0; i < n; i++) {
printRow(triangle[i], i + 1);
}
// 释放内存
for (int i = 0; i < n; i++) {
free(triangle[i]);
}
free(triangle);
}
int main() {
int n = 5; // 或者用户输入的值
generatePascalTriangle(n);
return 0;
}
```
在这个程序中,`generatePascalTriangle`函数负责生成和打印杨辉三角,而`printRow`函数用于显示一行。注意,在实际应用中,你需要处理用户输入的n值,并确保对内存管理得当以防止内存泄漏。
阅读全文