类重载实现矩阵加法
时间: 1ms 内存:128M
描述:
编写矩阵类Matrix,实现两个2x3矩阵相加。主函数已给定。
输入:
两个矩阵的元素值
输出:
两个矩阵相加的结果
示例输入:
1 2 3
4 5 6
1 2 3
4 5 6
示例输出:
2 4 6
8 10 12
提示:
参考答案(内存最优[0]):
#include <iostream>
using namespace std;
class Matrix
{
public:
Matrix();
void input();
void display();
friend Matrix operator +(Matrix &,Matrix &);
private:
int mat[2][3];
};
Matrix::Matrix()
{
int i,j;
for(i=0; i<2; i++)
for(j=0; j<3; j++)
mat[i][j]=0;
}
Matrix operator +(Matrix &m1,Matrix &m2)
{
Matrix m;
int i,j;
for(i=0; i<2; i++)
for(j=0; j<3; j++)
m.mat[i][j]=m1.mat[i][j]+m2.mat[i][j];
return m;
}
void Matrix::input()
{
int i,j;
for(i=0; i<2; i++)
for(j=0; j<3; j++)
cin>>mat[i][j];
}
void Matrix::display()
{
int i,j;
for(i=0; i<2; ++i)
{
for(j=0; j<2; ++j)
cout<<mat[i][j]<<" ";
cout<<mat[i][2];
cout<<endl;
}
}
int main()
{
Matrix a,b,c;
a.input();
b.input();
c=a+b;
c.display();
return 0;
}
参考答案(时间最优[0]):
#include <iostream>
using namespace std;
class Matrix
{
public:
void input()
{
int *p=a[0];
int i;
for(i=0;i<2*3;i++)
cin>>*p++;
}
Matrix operator+(Matrix b)
{
Matrix e;
int i,j;
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
e.a[i][j]=b.a[i][j]+a[i][j];
}
return e;
}
void display()
{
int i,j;
for(i=0;i<2;i++)
{
for(j=0;j<2;j++)
cout<<a[i][j]<<" ";
cout<<a[i][2]<<endl;
}
}
private:
int a[2][3];
};
int main()
{
Matrix a,b,c;
a.input();
b.input();
c=a+b;
c.display();
return 0;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。