版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_17497931/article/details/84321451
题目描述
有两个矩阵a和b,均为2行3列。求两个矩阵之和。重载运算符“+”,使之能用于矩阵相加(如c=a+b)。
重载流插入运算符“<<”和流提取运算符“>>”,使之能用于该矩阵的输入和输出。
输入
两个2行3列矩阵
输出
矩阵之和
样例输入
1 2 3
4 5 6
7 8 9
1 2 3
样例输出
8 10 12
5 7 9
答案
#include <iostream.h>
//using namespace std;
class Matrix
{
public:
Matrix();
friend Matrix operator+(Matrix &,Matrix &);
friend ostream& operator<<(ostream&,Matrix&);
friend istream& operator>>(istream&,Matrix&);
private:
int mat[2][3];
};
Matrix::Matrix(){
for ( int i = 0; i < 2; i++ )
for ( int j = 0; j < 3; j++ )
mat[i][j] = 0;
}
Matrix operator+( Matrix &a, Matrix &b ){
Matrix c;
for ( int i = 0; i < 2; i++ )
for ( int j = 0; j < 3; j++ ){
c.mat[i][j] = a.mat[i][j] + b.mat[i][j];
}
return(c);
}
istream & operator>>( istream &in, Matrix &m ){
for ( int i = 0; i < 2; i++ )
for ( int j = 0; j < 3; j++ )
in >> m.mat[i][j];
return(in);
}
ostream & operator<<( ostream &out, Matrix &m ){
for ( int i = 0; i < 2; i++ ){
for ( int j = 0; j < 3; j++ ){
out << m.mat[i][j] << " ";
}
out << endl;
}
return(out);
}
//主函数已给定如下,提交时不需要包含,会自动添加到程序尾部
/* C++代码 */
int main()
{
Matrix a,b,c;
cin>>a;
cin>>b;
c=a+b;
cout<<c<<endl;
return 0;
}