if(choose==5)
{
printf("输入行数:");
scanf("%d",&row1);
printf("输入列数:");
scanf("%d",&col1);
InitialMatrix(&A,row1,col1);
printf("请输入矩阵A:\n");
InputMatrix(&A);
printf("输入行数:");
scanf("%d",&row2);
printf("输入列数:");
scanf("%d",&col2);
InitialMatrix(&B,row2,col2);
printf("请输入矩阵B:\n");
InputMatrix(&B);
InitialMatrix(&C,row1,col2);
InitialMatrix(&C,row1,col2);
MultiMatrix(&A,&B,&C);
printf("矩阵A与B的积为:\n");
PrintfMatrix(&C);
DestroyMatrix(&C);
DestroyMatrix(&A);
DestroyMatrix(&B);
}
int MultiMatrix(Matrix A,Matrix B,Matrix C)
{
int i,j,k;
for(i=0;irow;i++)
{
for(j=0;jcol;j++)
{
for(k=0;kcol;k++)
(((C->mat+i))+j)+=((((A->mat+i))+k))((((B->mat+k))+j));
}
}
return 0;
}
void InitialMatrix(Matrix *T, int row,int col)
{
int i;
T->mat=(double **)malloc(sizeof(double*)*row);
for(i=0;i<row;i++)
{
*(T->mat+i)=(double *)malloc(sizeof(double)*col);
}
T->row=row;
T->col=col;
return ;
}
需要把存结果的C矩阵先初始化一下,分配后里面可能有一些值,不是0