我试着做一个n行的pascal三角形,我必须做一个为矩阵分配内存的函数,一个打印和释放内存的函数,我认为我在函数构建中的代码中有很多麻烦,我试图为矩阵分配内存并对其收费,我使用一个完整的函数来更改矩阵,我想我的主要问题是我有一个不规则的矩阵,我不知道如何继续,也许做一个数组或类似的东西会更好,对不起我的英语
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]);
}
}
}
发布于 2018-11-24 15:50:18
*(triangle)[i]=(int*)calloc(i+1,sizeof(int));
应该是
(* triangle)[i]=(int*)calloc(i+1,sizeof(int));
https://stackoverflow.com/questions/53459333
复制相似问题