面向对象程序设计上机练习十一(运算符重载)
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
有两个矩阵a和b,均为2行3列,求两个矩阵之和。重载运算符“+”,使之能用于矩阵相加。如:c=a+b。
输入
第1、2行是矩阵a的值,数据以空格分开。
第3、4行是矩阵b的值,数据以空格分开。
第3、4行是矩阵b的值,数据以空格分开。
输出
2个矩阵a、b之和,以行列形式显示。
示例输入
2 3 4 3 5 3 4 3 1 5 4 3
示例输出
6 6 5 8 9 6
#include <iostream>
using namespace std;
class A
{
private:
double a[2][3];
public:
void display()
{
int i,j;
for(i=0; i<2; i++)
for(j=0; j<3; j++)
{
cin>>a[i][j];
}
}
void show()
{
int i;
int j;
for(i=0; i<2; i++)
for(j=0; j<3; j++)
{
if(j==2)
cout<<a[i][j]<<endl;
else
cout<<a[i][j]<<" ";
}
}
A operator + (A b)//"+"重载
{
A c;
int i,j;
for(i=0; i<2; i++)
for(j=0; j<3; j++)
{
c.a[i][j]=a[i][j]+b.a[i][j];
}
return c;
}
};
int main()
{
A d1,d2,d3;
d1.display();
d2.display();
d3=d1+d2;
d3.show();
return 0;
}
#include <iostream>
using namespace std;
class A
{
private:
double a[2][3];
public:
void display()
{
int i,j;
for(i=0; i<2; i++)
for(j=0; j<3; j++)
{
cin>>a[i][j];
}
}
void show()
{
int i;
int j;
for(i=0; i<2; i++)
for(j=0; j<3; j++)
{
if(j==2)
cout<<a[i][j]<<endl;
else
cout<<a[i][j]<<" ";
}
}
A operator + (A b)//"+"重载
{
A c;
int i,j;
for(i=0; i<2; i++)
for(j=0; j<3; j++)
{
c.a[i][j]=a[i][j]+b.a[i][j];
}
return c;
}
};
int main()
{
A d1,d2,d3;
d1.display();
d2.display();
d3=d1+d2;
d3.show();
return 0;
}