【題目連結】
ybt 1125:矩陣乘法
OpenJudge NOI 1.8 09:矩陣乘法
【題目考點】
1. 二維數組周遊
【題解代碼】
解法1:
#include<bits/stdc++.h>
using namespace std;
#define N 105
int main()
{
int m, n, k, a[N][N], b[N][N], r[N][N] = {};//r初始化為0
cin>>n>>m>>k;
for(int i = 1; i <= n; ++i)//輸入n*m矩陣a
for(int j = 1; j <= m; ++j)
cin>>a[i][j];
for(int i = 1; i <= m; ++i)//輸入m*k矩陣b
for(int j = 1; j <= k; ++j)
cin>>b[i][j];
for(int i = 1; i <= n; ++i)//結果矩陣r為n行k列,求r每一個元素的值
for(int j = 1; j <= k; ++j)
for(int x = 1; x <= m; ++x)//公式:r[i][j] = a[i][1]*b[1][j] + a[i][2]*b[2][j] + ... + a[i][m] * b[m][j]
r[i][j] += a[i][x] * b[x][j];
for(int i = 1; i <= n; ++i)//結果矩陣r為n行k列
{
for(int j = 1; j <= k; ++j)
cout<<r[i][j]<<' ';
cout<<endl;
}
return 0;
}