add
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
void CreatYH(int n) {
|
||||
// 创建一个n行n列的二维数组
|
||||
int **arr = (int **)malloc(n * sizeof(int *));
|
||||
for (int i = 0; i < n; i++) {
|
||||
arr[i] = (int *)malloc(n * sizeof(int));
|
||||
}
|
||||
|
||||
// 初始化数组元素值
|
||||
for (int i = 0; i < n; i++) {
|
||||
arr[i][0] = 1; // 第一列值
|
||||
arr[i][i] = 1; // 斜边值
|
||||
}
|
||||
|
||||
// 使用杨辉三角的填充规则
|
||||
for (int i = 3; i <= n; i++) {
|
||||
for (int j = 2; j < i; j++) {
|
||||
arr[i - 1][j - 1] = arr[i - 2][j - 1] + arr[i - 2][j - 2]; // 赋值
|
||||
}
|
||||
// C语言不需要裁剪数组,因为定义了最大大小
|
||||
}
|
||||
|
||||
// 输出数组
|
||||
for (int i = 0; i < n; i++) {
|
||||
for (int j = 0; j <= i; j++) {
|
||||
printf("%d ", arr[i][j]);
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
// 释放内存
|
||||
for (int i = 0; i < n; i++) {
|
||||
free(arr[i]); // 释放每一行
|
||||
}
|
||||
free(arr); // 释放数组指针
|
||||
}
|
||||
|
||||
int main() {
|
||||
CreatYH(5);
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user