题意 例题一 的意思就是 第一个数组 第一行的每个数 X 第二个数组 第一列的每个数 相加 得到输出时的 第一个数字 然后依次类推。
思路 知道矩阵如何乘的不知道就点一下 啊啊
坑点 输出的时候每行的最后一个数的结尾是没有空格的(不然报错的)
#include<iostream>
#include<cstdio>
int a1[1000][1000],a2[1000][1000];
using namespace std;
int main()
{
int h1,l1,h2,l2; // h 行 L 列 可更改
cin>>h1>>l1; //输入行和列对应的值
for(int i=0;i<h1;i++)
for(int j=0;j<l1;j++)
cin>>a1[i][j];
cin>>h2>>l2;//如上
for(int i=0;i<h2;i++)
for(int j=0;j<l2;j++)
cin>>a2[i][j];
if(l1!=h2)printf("Error: %d != %d",l1,h2); //不能相×的情况
else
{
cout<<h1<<" "<<l2<<endl; //对后面没影响,先输出很方便
for(int i=0;i<h1;i++)
{
for(int j=0;j<l2;j++) //例题的话循环 两行 四列
{
int sum=0;
for(int k=0;k<l1;k++) sum+=a1[i][k]*a2[k][j];/ /因为是第一个的列和第二个的行相等,所以为小于l1 或者h2
// 前者为一行 的每列数字 * 后者 一列的每行对应的数字
cout<<sum;
if(j!=l2-1)cout<<" "; //最后一个数字没有空格
}
cout<<endl;
}
}
return 0;
}