#define MAX 10
void js(int m,int n,int p,long jz1[MAX][MAX],
long jz2[MAX][MAX],long jz3[MAX][MAX])
{
int i,j,k;
long lSum;
for(i=0;i<m;i++)//矩阵1的行
for(j=0;j<p;j++)//矩阵2的行
{
lSum=0;
for(k=0;k<n;k++)//矩阵1和2的列
lSum+=jz1[i][k]*jz2[k][j];
jz3[i][j]=lSum;
}//运算过程是先让矩阵1的第一行乘以矩阵2 的第一列,结果放矩阵3 的第一个位置。以此类推
}
int main()
{
long jz1[MAX][MAX],jz2[MAX][MAX];//定义的两个相乘的矩阵
long jz3[MAX][MAX],x;
int i,j,m,n,p;
/*输入两个矩阵的的行列数m,n,p*/
printf("\n请输入矩阵1的行:\n");
scanf("%d",&m);
printf("请输入矩阵1的列:\n");
scanf("%d",&n);
printf("请输入矩阵2的行:\n");
scanf("%d",&p);
/*输入第一个矩阵的每个元素*/
printf("\n请输入第一个矩阵的元素:\n");
for(i=0;i<m;i++)
for(j=0;j<n;j++)
{
scanf("%ld",&x);
jz1[i][j]=x;
}
/*输入第二个矩阵的每个元素*/
printf("\n输入第二个矩阵的每个元素");
for(i=0;i<n;i++)
for(j=0;j<p;j++)
{
scanf("%ld",&x);
jz2[i][j]=x;
}
js(m,n,p,jz1,jz2,jz3);
printf("\nResult: \n");
for(i=0;i<m;i++)
{
for(j=0;j<p;j++)
printf("%ld ",jz3[i][j]);
printf("\n");
}
}