求帮助,二维数组简单的重载运算符相加怎么会出现乱码

C++语言 码拜 9年前 (2016-04-17) 907次浏览
#include<iostream>
using namespace std;
class Array
{
protected:
int a[3][3];
public:
Array(){};
Array(int a1,int a2,int a3,int a4,int a5,int a6,int a7,int a8,int a9)
{
a[0][0]=a1;a[0][1]=a2;a[0][2]=a3;a[1][0]=a4;a[1][1]=a5;a[1][2]=a6;a[2][0]=a7;a[2][1]=a8;a[2][2]=a9;
}
void input()
{
cout<<“请输入二维数组的九个元素:”<<endl;
int i,j;
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
cin>>a[i][j];
}
}
void output()
{
cout<<“结果为:”<<endl;
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
cout<<“a[“<<i<<“][“<<j<<“]=”<<a[i][j]<<“\t”;
cout<<endl;
}
}
Array operator+(const Array& data);
Array operator-(const Array& data);
};
Array Array::operator +(const Array& data)
{
Array temp;
int i,j;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
temp.a[i][j]=a[i][j]+data.a[i][j];
}
return temp;
}
Array Array::operator -(const Array& data)
{
Array temp;
int i,j;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
temp.a[i][j]=a[i][j]-data.a[i][j];
}
return temp;
}
void main()
{
Array M1(1,2,3,4,5,6,7,8,9),M2,M3,M4;
M2.input();
M3=M1+M2;
M4=M1-M2;
cout<<“数组之和的”;
M3.output();
cout<<“数组之差的”;
M4.output();
}
解决方案

80

这一部分代码:
void input()
{
cout<<“请输入二维数组的九个元素:”<<endl;
int i,j;
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
cin>>a[i][j];
}
}
应该是:for(i=0;i<3;i++)吧

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明求帮助,二维数组简单的重载运算符相加怎么会出现乱码
喜欢 (0)
[1034331897@qq.com]
分享 (0)