作者在 2015-08-06 12:26:11 发布以下内容
最后的结果只有第一行的正确,哪里出了问题???
#include <stdio.h>
#include <stdlib.h>
#define M 4
#define N 5
void MatrixMultiply2(int A[M][N],int B[N][M],int result[M][N])
{
int i,j,k;
int temp;
for(i=0;i<M;i++)
for(j=0;j<M;j++)
{
temp=0;
for(k=0;k<N;k++)
temp=temp+A[i][k]*B[k][j];
result[i][j]=temp;
}
}
int main()
{
int i,j;
int a[M][N]={{1,3,5,7,9},{0,2,4,6,6},{2,3,7,5,8},{1,7,2,9,0}};
int b[N][M]={{3,1,4,5},{6,7,5,9},{4,4,3,1},{7,6,8,9},{1,2,3,4}};
int result[M][M];
printf("矩阵a:\n");
for(i=0;i<M;i++)
for(j=0;j<N;j++)
{
printf("%d ",a[i][j]);
if(j==N-1)
printf("\n");
}
printf("矩阵b:\n");
for(i=0;i<N;i++)
for(j=0;j<M;j++)
{
printf("%d ",b[i][j]);
if(j==M-1)
printf("\n");
}
printf("两个矩阵相乘等于:\n");
MatrixMultiply2(a,b,result);
for(i=0;i<M;i++)
for(j=0;j<M;j++)
{
printf("%d ",result[i][j]);
if(j==M-1)
printf("\n");
}
return 0;
}