杨辉三角形(递推、指针数组)
#include <stdio.h>
void triangle(int **arr, int numRows);
void printfTG(int *arr[], int numRows);
int main()
{
int *arr[10] = {NULL};
triangle(arr, 10);
printfTG(arr, 10);
}
//杨辉三角形
void triangle(int **arr, int numRows)
{
// int *arr[numRows];
for(int i = 0; i < numRows; i++)
{
arr[i] = (int *)malloc((i + 1) * sizeof(int));
arr[i][0]= arr[i][i] = 1;
for(int j = 1; j < i; j++)
{
arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
}
}
}
//打印输出
void printfTG(int *arr[], int numRows)
{
for(int i = 0; i < numRows; i++)
{
for(int j = 0; j <= i; j++)
{
printf("%d ", *(*(arr+i)+j));
}
printf("\n");
}
}