矩阵乘法,分为点乘和叉乘,A矩阵n×m,B矩阵m×k,那么A矩阵和B矩阵的叉乘就是C矩阵n×k,计算的时候就是三层for循环,第一层for循环i是n次,第二层for循环j是k次,第三次for循环p是m次,其中c[i][j]=a[i][p]×b[p][j],注意这三层for循环的关系。
#include<iostream>
#include<vector>
#include<cmath>
#include<climits>
using namespace std;
int main()
{
int n,m,k;
cin>>n>>m>>k;
vector<vector<int>> a(n+1,vector<int>(m+1));
vector<vector<int>> b(m+1,vector<int>(k+1));
vector<vector<int>> c(n+1,vector<int>(k+1,0)); //c=a×b
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>a[i][j];
for(int i=1;i<=m;i++)
for(int j=1;j<=k;j++)
cin>>b[i][j];
for(int i=1;i<=n;i++)
{
for(int j=1;j<=k;j++)
{
for(int p=1;p<=m;p++)
{
c[i][j]+=a[i][p]*b[p][j];
}
cout<<c[i][j]<<" ";
}
cout<<endl;
}
return 0;
}