模拟矩阵乘法的实现,难度中下吧
#include <bits/stdc++.h>
using namespace std;
int main(){
int x = 0, y = 0, z = 0;
cin >> x >> y >> z;
vector<vector<int>> A(x, vector<int>(y, 0));
vector<vector<int>> B(y, vector<int>(z, 0));
vector<vector<int>> C(x, vector<int>(z, 0));
// 输入第一个矩阵
for (int i = 0; i < x; i++) {
for (int j = 0; j < y; j++) {
int temp = 0;
cin >> temp;
A[i][j] = temp;
}
}
// 输入第二个矩阵
for (int i = 0; i < y; i++) {
for (int j = 0; j < z; j++) {
int temp = 0;
cin >> temp;
B[i][j] = temp;
}
}
// 执行矩阵乘法
for (int i = 0; i < x; i++) {
for (int j = 0; j < z; j++) {
int temp = 0;
for (int m = 0; m < y; m++) {
C[i][j] += (A[i][m] * B[m][j]);
}
}
}
// 输出
for(vector<vector<int>>::iterator iter = C.begin(); iter != C.end(); iter++) {
auto temp = *iter;
for (vector<int>::iterator iterr = temp.begin(); iterr != temp.end(); iterr++) {
cout << *iterr << " ";
}
cout << endl;
}
return 0;
}

京公网安备 11010502036488号