#include <stdio.h>
#include <assert.h>
#include <stdlib.h>
//用一维数组来实现杨辉三角的代码
void YangHui1(const int n)
{
int* arr = (int*)malloc(n * sizeof(int));
int* brr = (int*)malloc(n * sizeof(int));
for (int i = 0; i < n; i++)//将arr和brr全部赋值为1
{
arr[i] = brr[i] = 1;
}
for (int i = 0; i < n; i++)//处理第i行数据
{
for (int j = 1; j < i; j++)
{
brr[j] = arr[j] + arr[j - 1];
}
for (int k = 0; k <= i; k++)//打印和 将brr数据向arr覆盖
{
printf("%-5d", brr[k]);
arr[k] = brr[k];
}
printf("\n");
}
free(arr);
free(brr);
}
//用一维数组的形式来实现杨辉三角的代码
void YangHui1_2(const int n)
{
int* arr = (int*)calloc(n, sizeof(int));
arr[0] = 1;
for (int i = 0; i < n; i++)//处理第i行数据
{
for (int j = i; j >= 1; j--)
{
arr[j] = arr[j] + arr[j - 1];
}
for (int k = 0; k <= i; k++)
{
printf("%-5d", arr[k]);
}
printf("\n");
}
free(arr);
}
nt main()
{
YangHui1(5);
//YangHui1_2(5);
return 0;
}
结果为: