我尝试制作一个 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));
关于在 c 中创建 Pascal 三角形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53459333/