求两个矩阵之和。重载运算符“+”,使之能用于矩阵相加。如:c=a+b。

#include<iostream>usingnamespacestd;classBox{public:Box();Boxoperator+(Box&c);voiddis... #include<iostream>
using namespace std;
class Box
{public:
Box();
Box operator + (Box &c);
void display();
void input();
private:
int a[2][3];
};
Box::Box()
{int i=0,j=0;
for(;i<2;i++)
for(;j<3;j++)
a[i][j]=0;
}
void Box::input()
{int i=0,j=0;
for(;i<2;i++)
for(;j<3;j++)
cin>>a[i][j];}
void Box::display()
{int i=0,j=0;
for(;i<2;i++)
{cout<<endl;
for(;j<3;j++)
cout<<" "<<a[i][j];}}
Box Box::operator + (Box &c)
{Box t;
int i=0,j=0;
for(;i<2;i++)
for(;j<3;j++)
t.a[i][j]=a[i][j]+c.a[i][j];
return t;
}
int main()
{Box b1,b2,b3;
b1.input();
b2.input();
b1.display();
b2.display();
b3=b1+b2;
cout<<"b1+b2=";
b3.display();
return 0 ;}
b1,b2,输入不完整
展开
 我来答
紫薇参星
科技发烧友

推荐于2017-12-15 · 有一些普通的科技小锦囊
知道大有可为答主
回答量:5983
采纳率:92%
帮助的人:3494万
展开全部
因为你的j变量在i-for循环外初始化,所以导致j变量只循环一次就到了3。应该把j=0;放在i-for循环
里面,或者把j=0;写在j-for循环中,也就是for(int j=0;j<3;j++)。
我帮你改过来了,用的是第二种方法。完整的程序如下:
#include<iostream>
using namespace std;
class Box
{public:
Box();
Box operator + (Box &c);
void display();
void input();
private:
int a[2][3];
};
Box::Box()
{
for(int i=0;i<2;i++)
for(int j=0;j<3;j++)
a[i][j]=0;
}
void Box::input()
{
for(int i=0;i<2;i++)
for(int j=0;j<3;j++)
cin>>a[i][j];}
void Box::display()
{
for(int i=0;i<2;i++)
{
for(int j=0;j<3;j++)
cout<<" "<<a[i][j];
cout<<endl;
}}
Box Box::operator + (Box &c)
{Box t;

for(int i=0;i<2;i++)
for(int j=0;j<3;j++)
t.a[i][j]=a[i][j]+c.a[i][j];
return t;
}
int main()
{Box b1,b2,b3;
b1.input();
b2.input();
b1.display();
b2.display();
b3=b1+b2;
cout<<"b1+b2="<<endl;
b3.display();
return 0 ;}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式