解题思路:如果第一个矩阵的列数不等于第二个矩阵的行数,就直接输出,如果相等,就按照矩阵乘法进行运算,并输出
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,m,p,q;
cin>>n>>m;
int a[n][m];
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cin>>a[i][j];
}
}
cin>>p>>q;
int b[p][q];
for(int i=0;i<p;i++){
for(int j=0;j<q;j++){
cin>>b[i][j];
}
}
if(m!=p){
printf("Error: %d != %d",m,p);
return 0;
}
int c[n][q];
for(int i=0;i<n;i++){
for(int j=0;j<q;j++){
int sum=0;
for(int k=0;k<m;k++)
sum+=a[i][k]*b[k][j];
c[i][j]=sum;
}
}
cout<<n<<' '<<q<<endl;
for(int i=0;i<n;i++)
{
for(int j=0;j<q;j++){
if(j<q-1)
cout<<c[i][j]<<" ";
else
cout<<c[i][j];
}
cout<<endl;
}
}
运行结果: