c语言杨辉三角用一维数组
时间: 2024-12-17 11:13:42 浏览: 3
在C语言中,我们可以使用一维数组来表示杨辉三角。杨辉三角是一种数列图形,每个数字都是其上方两个数字之和。在一维数组中,我们通常从下标0开始,第一行存储的是1,然后逐行递增直到达到所需的层数。
下面是一个简单的示例,展示如何使用一维数组构建前几行的杨辉三角:
```c
#include <stdio.h>
#define MAX_SIZE 50
// 定义数组用于存储杨辉三角
int yanghui_triangle[MAX_SIZE][MAX_SIZE];
void print_yanghui(int n) {
for (int i = 0; i <= n; ++i) { // 遍历每一行
for (int j = 0; j <= i; ++j) { // 内部遍历当前行
if (j == 0 || j == i)
yanghui_triangle[i][j] = 1; // 边缘值为1
else
yanghui_triangle[i][j] = yanghui_triangle[i - 1][j - 1] + yanghui_triangle[i - 1][j]; // 其他位置的数值等于上一行对应位置相加
printf("%d ", yanghui_triangle[i][j]); // 输出当前元素
}
printf("\n"); // 换行
}
}
int main() {
int size;
printf("请输入杨辉三角的最大层数(1-%d): ", MAX_SIZE);
scanf("%d", &size);
if (size > MAX_SIZE) {
printf("层数过大,超出数组范围,请输入有效层数。\n");
return 1;
}
print_yanghui(size);
return 0;
}
```
阅读全文