#include
#include
int main(void)
{
int m,g,n;
int i,j,k;
printf("请输入第一个矩阵的行数和列数:\n");
scanf("%d%d",&m,&g);
printf("请输入第二个矩阵的列数(该矩阵行数等于第一个矩阵的列数):\n");
scanf("%d",&n);
int **a=NULL;
a=(int**)malloc(m*sizeof(int*));
for(i=0;i
a[i]=(int*)malloc(g*sizeof(int));
printf("请输入第一个矩阵中的元素:\n");
for(i=0;i
for(j=0;j
scanf("%d",&a[i][j]);
int **b=NULL;
b=(int**)malloc(g*sizeof(int *));
for(i=0;i
b[i]=(int*)malloc(n*sizeof(int));
printf("请输入第二个矩阵中的元素:\n");
for(i=0;i
for(j=0;j
scanf("%d",&b[i][j]);
int **result=NULL;
result=(int**)malloc(m*sizeof(int*));
for(i=0;i
result[i]=(int*)malloc(n*sizeof(int));
for(i=0;i
for(j=0;j
result[i][j]=0;
for(i=0;i
for(j=0;j
for(k=0;k
result[i][j]+=a[i][k]*b[k][j];
printf("结果:\n");
for(i=0;i
{
for(j=0;j
printf("]",result[i][j]);
printf("\n");
}
for(i=0;i
{
free(a[i]);
a[i]=NULL;
free(result[i]);
result[i]=NULL;
}
free(a);
a=NULL;
free(result);
result=NULL;
for(i=0;i
{free(b[i]);
b[i]=NULL;
}
free(b);
b=NULL;
return 0;
}
截图
#include
#include
int main(void)
{
int m,g,n;
int i,j,k;
printf("请输入第一个矩阵的行数和列数:\n");
scanf("%d%d",&m,&g);
printf("请输入第二个矩阵的列数(该矩阵行数等于第一个矩阵的列数):\n");
scanf("%d",&n);
double **a=NULL;
a=(double**)malloc(m*sizeof(double*));
for(i=0;i
a[i]=(double*)malloc(g*sizeof(double));
printf("请输入第一个矩阵中的元素:\n");
for(i=0;i
for(j=0;j
scanf("%lf",&a[i][j]);
double **b=NULL;
b=(double**)malloc(g*sizeof(double *));
for(i=0;i
b[i]=(double*)malloc(n*sizeof(double));
printf("请输入第二个矩阵中的元素:\n");
for(i=0;i
for(j=0;j
scanf("%lf",&b[i][j]);
double **result=NULL;
result=(double**)malloc(m*sizeof(double*));
for(i=0;i
result[i]=(double*)malloc(n*sizeof(double));
for(i=0;i
for(j=0;j
result[i][j]=0;
for(i=0;i
for(j=0;j
for(k=0;k
result[i][j]+=a[i][k]*b[k][j];
printf("结果:\n");
for(i=0;i
{
for(j=0;j
printf("%5g",result[i][j]);
printf("\n");
}
for(i=0;i
{
free(a[i]);
a[i]=NULL;
free(result[i]);
result[i]=NULL;
}
free(a);
a=NULL;
free(result);
result=NULL;
for(i=0;i
{free(b[i]);
b[i]=NULL;
}
free(b);
b=NULL;
return 0;
}