1

对于我的课程,我们必须做一个项目,其中用户可以分配最多 4 个矩阵 ABCD,然后使用 malloc 显示它。现在我想进入下一部分,并让用户添加他想要的任何矩阵。这是我的代码,可以完美运行以存储和显示矩阵:

#include<stdio.h>
#include <stdlib.h>


void matrix_display(int ****matrix, int row_count, int column_count);


int main (void)
{
int row_size1,col_size1,row_size2,col_size2,flag =1;
int ****A[4];
int i = 0, j = 0;
char a,c;


do
{
printf("\ncmd> ");
c = getchar();


if(c == 'A')
{
scanf("%d %d",&row_size1,&col_size1);
A[0]= malloc(row_size1*sizeof(int*));
for(i=0;i<row_size1;i++)
{
A[0][i]=malloc(col_size1*sizeof(int));
}
for(i=0;i<row_size1;i++)
{
for(j=0;j<col_size1;j++)
    {
scanf("%d",&A[0][i][j]);


    }
}
matrix_display(A[0], row_size1, col_size1);
  }


if(c == 'B')
{
scanf("%d %d",&row_size1,&col_size1);
A[1]= malloc(row_size1*sizeof(int*));
for(i=0;i<row_size1;i++)
{
A[1][i]=malloc(col_size1*sizeof(int));
}
for(i=0;i<row_size1;i++)
{
for(j=0;j<col_size1;j++)
  {
scanf("%d",&A[1][i][j]);


       }
   }
matrix_display(A[1], row_size1, col_size1);
}


if(c == 'C')
{
scanf("%d %d",&row_size1,&col_size1);
A[2]= malloc(row_size1*sizeof(int*));
for(i=0;i<row_size1;i++)
{
A[2][i]=malloc(col_size1*sizeof(int));
}
for(i=0;i<row_size1;i++)
{
for(j=0;j<col_size1;j++)
 {
scanf("%d",&A[2][i][j]);


       }
   }
matrix_display(A[2], row_size1, col_size1);
}


if(c == 'D')
{
scanf("%d %d",&row_size1,&col_size1);
A[3]= malloc(row_size1*sizeof(int*));
for(i=0;i<row_size1;i++)
{
A[3][i]=malloc(col_size1*sizeof(int));
}
for(i=0;i<row_size1;i++)
{
for(j=0;j<col_size1;j++)
 {
scanf("%d",&A[3][i][j]);


       }
   }
matrix_display(A[3], row_size1, col_size1);
 }


 }
while(flag == 1);
 }


void matrix_display(int ****A, int row_size1, int col_size1) 
{
int i,j;
printf("The required matrix is\n");
for(i=0;i<row_size1;i++)
{
for(j=0;j<col_size1;j++)
  printf("%d ",A[i][j]);
  printf("\n");
}
for(i=0;i<row_size1;i++)
{
  free(A[i]);
}
free(A);
}

现在对于添加部分,我添加了以下内容:这就是我希望它运行的方式:cmd> + AD(显示矩阵 A 和 D 的加法)

我不知道该怎么做任何建议将不胜感激

我知道他们是更简单的方法,并且* * 我没有使用过,但这次请例外

4

0 回答 0