求救大神
#include<stdio.h>
#include<math.h>
//声明三个矩阵 matri
double **matrix_multiplication(const double **b_matrix,const double **c_matrix,int x,int y,int z)
//a-matrix=b_matrix*c_matrix
//x,b_matrix的列数,c_matrixde的行数
//y,b_matrix的行数
//z,c_matrix的列数
{ double **a_matrix;
int k1,k2,k3;
double stem;
double **a;
//k1,b_matrix第k1列,c_matrix第k1行
//k2,b_matrix第k2行
//k3,c_matrix第k3列
for(k2=0;k2<y;k2++)
{
for(k3=0;k3<z;k3++)
{
for(k1=0;k1<x;k1++)
{
stem+=b_matrix[k2][k1]*c_matrix[k1][k3];
}
a_matrix[k2][k3]=stem;
}
}
a=a_matrix;
return a;
}
int main()
{
double **answer;
double **b;
double **c;
int m1,m2,n,l;
int k1,k2,k3;
printf("请输入第一个矩阵的行数和列数\n");
scanf("%d%d",&n,&m1);
printf("请输入第二个矩阵的行数和列数\n");
scanf("%d%d",&m2,&l);
if(m1=!m2)
{
printf("两矩阵无法相乘");
}
else
{for(k2=0;k2<n;k2++)
{
printf("请输入第一个矩阵第%d行的数据:",k2);
for(k1=0;k1<m1;k1++)
{
scanf("5.2%f",&b[k2][k1]);
}
}
for(k1=0;k1<m2;k1++)
{
printf("请输入第一个矩阵第%d行的数据:",k1);
for(k3=0;k3<l;k3++)
{
scanf("5.2%f",&b[k1][k3]);
}
}
answer=matrix_multiplication(b,c,m1,n,l);
printf("所得矩阵的内积为:\n");
for(k2=0;k2<n;k2++)
{
for(k3=0;k3<l;k3++)
{
printf("%5.2f",answer[k2][k3]);
}
}
}
return 0;
}