用c语言中动态内存实现输出杨辉三角
时间: 2023-10-12 10:05:07 浏览: 107
C语言实现杨辉三角
杨辉三角是一个以数字排列成三角形的数表,起始于顶端的数字为1,以下每个数字均为其左上方和右上方两个数字之和。下面是用C语言中动态内存实现输出杨辉三角的代码:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int n, i, j;
printf("请输入杨辉三角的行数:");
scanf("%d", &n);
int **triangle = (int **)malloc(n * sizeof(int *)); // 分配动态内存
for (i = 0; i < n; i++) {
triangle[i] = (int *)malloc((i + 1) * sizeof(int));
triangle[i][0] = 1;
triangle[i][i] = 1;
for (j = 1; j < i; j++) {
triangle[i][j] = triangle[i - 1][j - 1] + triangle[i - 1][j];
}
}
for (i = 0; i < n; i++) {
for (j = 0; j <= i; j++) {
printf("%d ", triangle[i][j]);
}
printf("\n");
}
for (i = 0; i < n; i++) {
free(triangle[i]); // 释放动态内存
}
free(triangle);
return 0;
}
```
程序首先通过 `malloc` 函数分配了一个 `int **` 类型的指针数组,每个指针又指向一个包含该行数字的动态分配数组。然后程序使用两层循环,计算出每个数字并保存在相应的数组位置中。最后再次使用循环将杨辉三角打印出来并释放动态分配的内存。
阅读全文