#include"iostream"
using namespace std;
const int maxn=99;
struct matrix
{
int n,m;
int a[maxn][maxn];
void clear()
{
n=m=0;
memset(a,0,sizeof(a));
}
matrix operator +(const matrix &b) const
{
matrix tmp;
tmp.n=n;
tmp.m=m;
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
tmp.a[i][j]=a[i][j]+b.a[i][j];
return tmp;
}
matrix operator -(const matrix &b) const
{
matrix tmp;
tmp.n=n;
tmp.m=m;
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
tmp.a[i][j]=a[i][j]-b.a[i][j];
return tmp;
}
matrix operator *(const matrix &b) const //n m=b.n b.m
{
matrix tmp;
tmp.clear();
tmp.n=n;
tmp.m=b.m;
for(int i=0;i<n;i++)
for(int j=0;j<b.m;j++)
for(int k=0;k<m;k++)
tmp.a[i][j]+=a[i][k]*b.a[k][j];
return tmp;
}
};
int main()
{
matrix a,b;
while(cin>>a.n>>a.m>>b.n>>b.m)
{
matrix c;
for(int i=0;i<a.n;i++ )
for(int j=0;j<a.m;j++)
cin>>a.a[i][j];
for(int i=0;i<b.n;i++)
for(int j=0;j<b.m;j++)
cin>>b.a[i][j];
cout<<"+\n";
c=a+b;
for(int i=0;i<c.n;i++)
{
for(int j=0;j<c.m;j++)
cout<<c.a[i][j]<<" ";
cout<<endl;
}
cout<<"-\n";
c=a-b;
for(int i=0;i<c.n;i++)
{
for(int j=0;j<c.m;j++)
cout<<c.a[i][j]<<" ";
cout<<endl;
}
cout<<"*\n";
c=a*b;
for(int i=0;i<c.n;i++)
{
for(int j=0;j<c.m;j++)
cout<<c.a[i][j]<<" ";
cout<<endl;
}
}
}
矩阵加减乘

最新推荐文章于 2024-01-17 11:23:48 发布