两个矩阵相乘但是结果不对,只有第一行的对,求解!

  • Post author:
  • Post category:其他


代码如下:

#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;
}



版权声明:本文为xiaowen901018原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。