在c中创建Pascal三角形



我试图制作一个n行的帕斯卡三角形,我必须制作一个为矩阵分配内存的函数,一个打印和释放内存的函数。我认为我的代码有很多麻烦在函数构建中,我试图为矩阵分配内存并对其充电。我使用一个函数来填充矩阵,我认为我的主要问题是我有一个不规则的矩阵,我不知道如何处理,也许制作一个数组数组或类似的东西会更好,对不起我的英语

int main()
{
int **triangle=NULL;
int n;
printf("size of triangle");
scanf("%d",&n);
build(&triangle,n);
print(triangle,n);
return 0;
}
void build(int***triangle,int n){
*triangle=(int**)calloc(n,sizeof(int*));
int i;
for(i=0;i<n;i++){
*(triangle)[i]=(int*)calloc(i+1,sizeof(int));
}
full(*triangle,n);
}
void full(int**triangle,int n){
int i;
int j;
for(i=0;i<n;i++){
for(j=0;j<i;j++){
if(j==0){
triangle[i][j]=1;
}
else
if(j==i){
triangle[i][j]=1;
}
else
triangle[i][j]=triangle[i-1][j-1]+triangle[i-1][j];
}
}
}
void print(int **triangle,int n){
int i;
int j;
for(i=0;i<n;i++){
for(j=0;j<i;j++){
printf("%d",triangle[i][j]);
}
}
}
*(triangle)[i]=(int*)calloc(i+1,sizeof(int));

应该是

(* triangle)[i]=(int*)calloc(i+1,sizeof(int));

最新更新