打印杨辉三角形(c语言)
时间: 2024-10-09 18:09:40 浏览: 22
杨辉三角,也称为帕斯卡三角,是一种经典的数学图形,每一行都是前一行的数字之和,从0、1开始,呈对称分布。以下是使用C语言打印杨辉三角的一个简单示例:
```c
#include <stdio.h>
// 功能:打印指定大小的杨辉三角
void printPascalTriangle(int n) {
for (int i = 0; i <= n; ++i) { // 遍历每一行
// 输出空格,保持三角形的形状
for (int j = 0; j < i; ++j)
printf(" ");
// 输出当前行的数
for (int k = 0; k <= i; ++k) {
if (k == 0 || k == i)
printf("%d", 1);
else
printf("%d ", pascal[i][k]);
}
// 换行
printf("\n");
}
}
// 计算并存储杨辉三角的值
int** pascal = NULL;
int** createPascal(int n) {
int** arr = malloc(n * sizeof(int*));
for (int i = 0; i < n; ++i) {
arr[i] = malloc((n + 1) * sizeof(int));
arr[i][0] = arr[i][n - 1] = 1; // 第0行和第n行全为1
if (i > 0) {
for (int j = 1; j < n; ++j)
arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
}
}
return arr;
}
int main() {
int size;
printf("Enter the number of rows for Pascal's triangle: ");
scanf("%d", &size);
// 初始化并计算杨辉三角
pascal = createPascal(size);
// 打印三角形
printPascalTriangle(size);
// 清理内存
for (int i = 0; i < size; ++i)
free(pascal[i]);
free(pascal);
return 0;
}
```
运行这个程序时,它会提示用户输入杨辉三角的行数,然后打印出相应的三角形。