使用二维数组来保存杨辉三角,编写函数fun保存前三十行的数据,编写函数output,将前19行打印出来
时间: 2024-02-18 09:04:38 浏览: 67
好的,以下是使用二维数组保存杨辉三角的代码实现:
```c
#include <stdio.h>
#define N 30
void fun(int arr[N][N])
{
int i, j;
for (i = 0; i < N; i++) {
arr[i][0] = 1;
arr[i][i] = 1;
for (j = 1; j < i; j++) {
arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
}
}
}
void output(int arr[N][N])
{
int i, j;
for (i = 0; i < 19; i++) {
for (j = 0; j <= i; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
}
int main()
{
int arr[N][N];
fun(arr);
output(arr);
return 0;
}
```
在以上代码中,我们定义了一个二维数组 `arr` 来保存杨辉三角的数据。首先,在 `fun` 函数中,我们使用两个循环来填充数组。外层循环从第一行到第三十行,内层循环从第一列到当前行数。在内层循环中,我们使用递推公式 `arr[i][j] = arr[i-1][j-1] + arr[i-1][j]` 来计算当前位置的值。同时,我们还需要在每一行的第一列和最后一列将其值设为 1。
在 `output` 函数中,我们只需要循环输出前 19 行的数据即可。
最后,在 `main` 函数中,我们先调用 `fun` 函数来计算前三十行的数据,然后调用 `output` 函数将前 19 行打印出来。
阅读全文