两个矩阵相乘

作者在 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;
}

 

数据结构 | 阅读 3031 次
文章评论,共1条
不谋
2015-08-07 11:24
1
线代问题,第五行int result[M][N]改为int result[M][M]
游客请输入验证码