c语言杨辉三角形用一维数组完成
时间: 2024-09-23 08:08:10 浏览: 46
输出杨辉三角形-C语言数组教学
在C语言中,我们可以使用一维数组来构建杨辉三角(Pascal's Triangle),它是一个由数字组成的三角形,每个数字是上一行两个对应数字之和。这里是一种简单的实现方法:
```c
#include <stdio.h>
#define ROWS 10 // 可视化显示的最大行数
void print_pascals_triangle(int arr[]) {
int i, j;
// 初始化第一行和前两列
for (i = 0; i <= ROWS; i++) {
if (i == 0 || i == 1)
printf("%d ", arr[i]);
else
printf(" %d ", arr[i]);
}
printf("\n");
// 计算并打印其余的值
for (i = 2; i < ROWS; i++) {
for (j = 0; j <= i; j++) {
// 杨辉三角的第i+1行,第j个元素等于第i行的第j个元素加上第i行的第(j-1)个元素
arr[j] = (i > 0 ? arr[j - 1] : 0) + (j > 0 ? arr[j] : 0);
}
// 打印当前行
printf("%d ", arr[0]);
for (j = 1; j < i; j++)
printf("%d ", arr[j]);
printf("%d\n", arr[i]);
}
}
int main() {
int triangle[ROWS * 2]; // 用于存储杨辉三角的数组,考虑前两行额外的0
print_pascals_triangle(triangle);
return 0;
}
```
在这个程序中,`print_pascals_triangle`函数会打印出指定大小的杨辉三角。注意,为了支持较大的数值,我们通常需要预分配比实际需要更多的数组空间(例如,如果最大行数设置为10,则数组大小为20)。
阅读全文