1. 程式人生 > >4942-計算兩個矩陣的乘積 ZCMU

4942-計算兩個矩陣的乘積 ZCMU

Description

 計算兩個矩陣的乘積,第一個是2*3矩陣,第二個是3*2矩陣,結果為一個2*2矩陣。

Input

 輸入包含多組資料,先輸入一個2*3矩陣,再輸入一個3*2矩陣。

Output

 輸出兩個矩陣的乘積。

Sample Input

1 1 1

1 1 1

1 1

1 1

1 1

Sample Output

3 3

3 3

思路

矩陣乘法需再開一個數組用以儲存兩矩陣相乘後的結果

程式碼

#include<stdio.h>
#include<string.h>
int g1[5][5],g2[5][5],ans[5][5];
int main()
{
    while(~scanf("%d %d %d",&g1[0][0],&g1[0][1],&g1[0][2]))
    {
        for(int i=1;i<2;i++)
        {
            for(int j=0;j<3;j++)
            {
                scanf("%d",&g1[i][j]);
            }
        }
        for(int i=0;i<3;i++)
        {
            for(int j=0;j<2;j++)
            {
                scanf("%d",&g2[i][j]);
            }
        }
        memset(ans,0,sizeof(ans));
        for(int i=0;i<2;i++)
        {
            for(int j=0;j<2;j++)
            {
                for(int k=0;k<3;k++)
                {
                    ans[i][j]+=g1[i][k]*g2[k][j];
                }
            }
        }
        for(int i=0;i<2;i++)
        {
            for(int j=0;j<2;j++)
            {
                if(j==0)
                    printf("%d",ans[i][j]);
                else
                    printf(" %d",ans[i][j]);
            }
            printf("\n");
        }
    }
    return 0;
}