如何在C++中用重载让两个数组相加?

这是我写的代码,没有错误但是没有结果。请大佬给我看一下,谢谢!
#include
#include
#include
using namespace std;
class Myclass
{
public:
int x = 0, y = 0;
Myclass() {}
void array()
{
int i = 0, j = 0;
do
{
cin >> a[i][j]; j++; y = j;
if (j % 3 == 0) { i++; x = i; }
} while (a[i][j] != EOF);
}
Myclass(int i, int j)
{
srand(int(time(0)));
for (int o = 0; o < i; o++)
{
for (int p = 0; p < j; p++)
b[o][p] = rand() % +100;
}
}
Myclass operator+(Myclass&none)
{
Myclass in;
for (int i = 0; i < x; i++)
{
for (int j = 0; j < y; j++)
{
in.c[i][j] = a[i][j] + b[i][j];
}
}
return in;
}
void show()
{
for (int p = 0; p < x; p++)
{
for (int o = 0; o < y; o++)
{
cout << c[p][o];
}
cout << endl;
}
}
private:
int a[20][20], b[20][20], c[20][20];
};
int main()
{
Myclass one;
cout << "please input one array:" << endl;
one.array(); Myclass two(one.x, one.y);
Myclass three; three = one + two; three.show();
return 0;
}

c++

1个回答

array函数中把do-while循环改成while循环,并且把循环条件改成cin>>a[i][j],把循环体中的cin语句去掉。因为cin不能读入EOF。

现在看来应该是x和y有问题(我让程序输出了one.x和one.y):
please input one array:
1 2 3 4 5 6 7 8 9 10 11 -12 -13 20 21 t //以非整数为读入数据的结束
(69,208)

weixin_41461277
_ZGq 好像是x和y有问题,你看看我编辑的答案,我在one.array()后面加了一个cout<<'('<<one.x<<','<<one.y<<')'; ,程序输出这个
9 个月之前 回复
weixin_41461277
_ZGq cin.operator >>()本身就有返回值。
9 个月之前 回复
weixin_43337464
找不到error 回复: cin>>a[i][j这样就行啦?为什么啊?这样岂不是没有判定
9 个月之前 回复
weixin_43337464
找不到error 回复weixin_41461277: void array() { int i = 0, j = 0; while (cin>>a[i][j]) { j++; y = j; if (j % 3 == 0) { i++; x = i; } if (a[i][j] == 0)break; } }我把它改成这样了,又死了。我去试试DEV
9 个月之前 回复
weixin_41461277
_ZGq 回复weixin_43337464: cin>>a[i][j]在Dev-C++,g++中过的了
9 个月之前 回复
weixin_41461277
_ZGq 回复weixin_43337464: cin>>a[i][j]就行。
9 个月之前 回复
weixin_43337464
找不到error 大佬。循环条件用什么?(cin>>a[i][j])!=-1吗?vs17 里通过不了哎
9 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
CUDA—两个数组相加
使用CUDA实现两个数组的相加,熟悉CUDA相关函数的使用。 #include &amp;lt;cuda_runtime.h&amp;gt; #include &amp;lt;stdio.h&amp;gt; __global__ void addKernel( int* c, const int* a, const int* b ) { int i = threadIdx.x; ...
C语言实现两个超大数组相加
//任意两个一百位以上的整数相加;//用字符串存储,数组输入相加后的和并输出;//由于不知道相加后的结果,而且数组没办法提前知道所得结果的长度,所以需要将数组设置的尽量大;#include&amp;lt;stdio.h&amp;gt; #include&amp;lt;string.h&amp;gt; #define N 200 //设定存储相加之和的数组大小; int main(void) { char s1[100]...
c数组,字符串相加
-
如何在asp中用数组做参数
我自己用vc++编写了一个组件,其中有一个参数是VARIANT型,传入的是一个数组,此组件在vb下调用正常,可是在用asp调用的时候,无法传入此数组。我用的是vbscript。请问大家有没有在asp调用组件的函数中,有传入数组做参数的例子!rn我的列子如下rn<%rndim a(10)rndim irnfor i=0 to 9rna(i)=irnnextrndim sendrnset send=server.CreateObeject("myobject")rnsend arn'上面的一句出错,什么地方错了望告知rn%>
如何在同一TABLESHEET中用两个DBGRID?
我想用两个DBGRID,当我指向第一个DBGRID中的某条记录时,在第二个DBGRID中就能显示对应的记录,并且我能修改记录在第二个DBGRID中显示.rn我是新手,也不知道我说的意思好不好懂,请高手赐教!
如何在同一个网页中用两个css?
比如我在首 页 "| 新 闻 | 技 术 | 论 坛 | 人 才 | 商 城 | 大本营 |《程序员》| 软 件"中用上一个css,它们的连接是一种颜色;而在别的地方又用别的css了.它们的连接颜色又是一种.怎么做?或者是就是有两种不同的链接颜色.怎么做?
两个byte数组如何相加???
请问高手们:rnrn我想把两个不定长度的byte数组相加,结果保留到第三个不定长度的byte数组中,请问怎么实现呢???
两个数组如何相加在一起?
两个唯数和类型都相同的数组如何相加在一起?rndim a() as byte rndim b() as byterndim c() as byte rn... '给a,b 赋值rnc() = a() & b() '这样报错,类型不匹配,光标停在&处,用+也不行。请问如何实现?
两个五百位的数相加(数组)
让两个五百位的数相加,得到其结果。有了此代码,让两个五百位的数相见减,相除,相乘都有了希望。我终于把相加弄出来了,其它的应该差不多,估计除法会比较难!
两个vector数组相加迭代
vector::iterator add2; vector::iterator add; 两个迭代器 rnvector *result2=new vector(); vectorresult1;rn...................rnadd2=result2->begin();carry=0;rnfor(add=result1.begin();add!=result1.end();++add)rn rn remain=((*add)+(*add2)+carry)%10;rn carry=((*add)+(*add2))/10;rn (*add2)=remain;rn if(add2==(result2->end())) /// 这个语句一直没 起作用 即使reult2长度不够也不会执行 是不是判断语句的错误啊rn rn result2->push_back(0); // (如果 result2 长度不够 ,就给它补上。)rn rn add2+=1;rn
两个数组相加存入第三个数组(面试题)
java 数组相加
求教:如何在vb中用c的数组指针
本人现在在vb中利用opengl(c编写的)开发三维程序rn现在用到一个函数 void glclipplane(plane, const gldoulbe *equation)rnequation 是个数组rn在c里面定义如下 rngldouble equation[4]=0,1,0,0rnglclipplane(plane1,equation)rn这里面equation直接用作数组指针,调用数组中的4个数rn那在vb里面这个equation指针该怎么调用???rn
如何在VC中用 C 写 DLL ?
如何在VC中用 C 写 DLL ?rn有什么书或者网页,网站详细介绍着方面的东东?rn
如何在in中用模糊查询
比如:rn我想查询所有"人员代码"为1xx、4xx、6xx、7xx的员工rn类似于~~人员代码 in ('1%','4%','6%','7%')rn不要告诉我用or连接阿
两个一元多项式相加,C语言版
数据结构课程设计两个一元多项式相加,C语言版
c语言 两个一元多项式相加。
用线性表的存储形式实现两个一元多项式相加。
如何在c#中用虚拟的方法实现重载?其实很简单
如何在c#中用虚拟的方法实现重载?其实很简单!这是一个简单的例子请大家参考一下!
如何在两个之间传递数组?
切分窗口后,左边是FORMVIEW,右边是CMyView,如何将formview计算出一组数组传递到CMyView?rn谢谢了!!
如何在两个Activity之间传递数组
大神们我想做从一个Activity传递数组到另一个Activity中,请问怎么传递,我这样做正确吗,跪求指导rn这里是SongList列表rnIntent intent_path = new Intent(); rnintent_path.setClass(this, MusicPlayer.class); rnBundle bundle_path = new Bundle();rnbundle_path.putSerializable("DATA", new String[]Path,Path1,Path2);rnintent_path.putExtras(bundle_path); rnstartActivity(intent_path); rnrn这里是MusicPlayer界面rn接收rnIntent intent =getIntent();rnBundle songList = getIntent().getExtras();rnString[] array = songList.getStringArray("DATA");rnuri = Uri.parse(array);rnrn
C++之重载矩阵相加
#include &amp;lt;iostream&amp;gt;using namespace std;class Matrix{ public: Matrix(); friend Matrix operator +(Matrix &amp;amp;,Matrix &amp;amp;); void input(); void display(); private: int mat[2][3]; };Matrix:...
数组的相加
我建立了N个数组rnrnArrayList arr1 = new ArrayList();rnArrayList arr2 = new ArrayList();rnArrayList arr3 = new ArrayList();rnArrayList arr4 = new ArrayList();rnArrayList arr5 = new ArrayList();rn.rn.rn.rnArrayList arrN = new ArrayList();rnrnrnrn我把这些数组都加到一个大数组里.rnrnArrayList arr = new ArrayList()rnrnarr.add(arr1);rnarr.add(arr2);rn...rnarr.add(arrN);rnrn我遍历的时候想要对所有ArrayList()的值进行相加.rn请问改如何加?rnrnrnfor(int i=0;i
数组相加
$kk = array('a'=>'3','b'=>'6','c'=>'9');rn$ll = array('a'=>'2','b'=>'4','c'=>'7');rn这两个数组相加后形成新数组:array('a'=>'5','b'=>'10','c'=>'16');
FOR 数组相加
[code=C#]rnrnrndecimal[,] testArray;rntestArray = new decimal[3, 3];rntestArray = new decimal[,] 0, 100, 80, 30, 0, 40 , 50, 10, 0 ;rnrn for (int x = 0; x < 3; x++)rn rn rn for(int z=0;z<3;z++)rn rn if (x != z)rn rn Response.Write(z + ">=" + testArray[x, z] + " ");rn rn rn rnrnrn//1>=100rn//2>=80rn//0>=30rn//2>=40rn//0>=50rn//1>=10rn[/code]rnrnrn要求输出rnrn1>=110rn2>=120rn0>=80rn2>=120rn0>=80rn1>=110rnrn看着FOR就头痛,请大家帮忙rnrn谢谢!
C# 将两个整型数组的元素相加
C# 将两个整型数组的元素相加。别忘给评分!
PHP两个数组相加如何合并?
$a = array('a'=>1,'b'=>2,'c'=>3);   $b = array('a'=>2,34,4,77,99);   $c = $a + $b;   echo "";   print_r($c); 结果: Array (     [a] => 1     [b] => 2     [c] => 3     [0] => 34
高手救急:两个数组怎么相加?!
得到一个数组,包含这两个数组得内容
数组中如何让相同的元素相加
A = Array("T","C","B","T")rnB = Array(8,1,2,3)rnrnA数组与B数组时的元素个数是一样的。。rnrn想让 A数组中 元素内容相等的 的值合成一个元素 对应B数组的 元素值也相加,合成一个元素。rnrnrn效果:("T","C","B") (11,1,2)rnrnT T相等合成 T 对应的时 8 和3 合成 11rn
运算符重载实现两个数组相加并输出!
#include rn#include rnclass arnrnpublic:rn a()rn rn for(int i=0;i<=1;i++)rn for(int j=0;j<=2;j++)rn mate[i][j]=0;rn rn friend a operator+(a &, a &);rn friend istream& operator>>(istream &in,a &m);rn friend ostream& operator<<(ostream &out,a &m);rnrn rnprivate:rn int mate[2][3];rn;rna operator +(a &b, a &c)rnrn a temp;rn for(int i=0;i<=1;i++)rn for(int j=0;j<=2;j++)rn rn temp.mate[i][j]=b.mate[i][j]+c.mate[i][j];rn rn rn return temp;rnrnostream & operator<<(ostream &out, a &m)rnrn for(int i=0;i<=1;i++)rn for(int j=0;j<=2;j++)rn out<>(istream &in, a &m)rnrn for(int i=0;i<=1;i++)rn for(int j=0;j<=2;j++)rn in>>m.mate[i][j];rn return in;rnrnint main()rnrn a a1,b1,c1;rn cin>>a1>>b1;rn c1=a1+b1;rn cout<
两个向量(数组)点对点相加(Java)
两个向量(数组)点对点相加(Java)public class CMatrix { private CMatrix() {} /** * addition of two vectors. * * @param x one vector * @param y another vector * @return result vecto...
怎么让数组分别循环相加
下面这段代码是把把name的值为一样的统计其数量,如:a:3 b:2 c:1,现在求各位大神,我想实现让如a:3 price=33(33为想同的name下,price想加得出的结果)rnfunction aa()rnvar list = [ "name":"a", "price": "10", "name":"a", "price": "11", "name":"a", "price": "12", "name":"b", "price": "20","name":"b", "price": "21","name":"c", "price": "30"];rnvar list2 = [];rnvar listMap = ;rnfor (var i = 0, len = list.length, name, price, key; i < len; i++) rn name = list[i].name;rn price = list[i].price;rn key = name// + '-' + name; // key为id和name的组合,值为numberrn if (!!listMap[key]) rn listMap[key]++;rn else rn listMap[key] = 1;rn rnrnfor (var item in listMap) rn list2.push(rn id: item[0],rn // name: item.split('-')[1],rn number: listMap[item]rn )rnrn
如何让两个CString对象的值相加?
我设置了三个EDIT BOX控件rn设置了三个函数rnCString m_1;rnCString m_2;rnCString m_3;rn我想在m_2输入数值时m_3自动计算m_1+m_2rnvoid Cwork::OnChangem2() rnrn UpdateData();rn m_maoli=m_shoujia-m_chengben;rn UpdateData(false);rnrn但是这样不对啊~~m_3出来的不是数字,是乱码啊~~
如何在多线程中用定时器
如何在多线程中用定时器rn假如有两个线程1,2,想在各自己的线程中有自己的一个定时器,到一定时间就Do SomeThing,rn那位有简单的例子发一下,谢谢
如何在Lotus中用Java编程?
请问谁有用Java编写过的数据库能够在浏览器上使用?有范例能否发一个给我,谢谢!(我会给您加分的)ustczhy@yeah.net
如何在vc.net中用opengl?
几个头文件我也include了,rnlink也加上所必需的.lib了,rn但是编译的时候还是一堆标识府无法识别:(rnrn谁可以帮忙的给我发信把,rnlonk@ynmail.com
如何在類中用Session ?
c# 如何在類中用Session 是否能用 如果不能用怎麼辦?
如何在DEVCPP中用BOOST库?
好像搜索也搜索不到...我用的是dev-cpp4.9.9
如何在VB中用正则!!!
Public Function GetImagesUrl(ByVal str As String)rn Dim Temp, TempURL, mm,objRegExp1 rnrn Temp = ""rn TempURL = ""rn Set objRegExp1 = New Regexprn objRegExp1.IgnoreCase = Truern objRegExp1.Global = Truern objRegExp1.Pattern = "(\)"rn Set mm = objRegExp1.Execute(str)rnrn For Each Match1 In mmrn Temp = Temp & Match1.Value & "$"rn Nextrnrn objRegExp1.Pattern = "(http://.+?)(\'|\""|\s|\>)"rn Set mm = objRegExp1.Execute(Temp)rn For Each Match1 In mmrn TempURL = Match1.Value & "$" & TempURLrn Nextrn rn GetImagesUrl = TempURLrnEnd Functionrnrn函数功能是得到图片的地址!rn请问为什么VB老是报“用户定义类型没有定义”呢?光标指示“Regexp”rn在VB类库中没有这个对象。我要如何才能在VB里达到,上述函数的功能呢?rn
如何在javascript中用正则表达式?
在.net中有regex正则表达式的类?rn在javascript中如何实现正则表达式?rn各语言所要实现正则表达式的方法都不一样?
关于如何在vb.net中重载类变量、数组
在vb.net中重载变量rnrn 重载函数是很正常的事,但有的时候,需要重载变量,如下例rnrn class Personrn public Name as stringrn end classrnrn class Orgnizationrn public head as Personrn …rn end classrnrn Orgnization是一个类,它代表一个组织,它有一个head成员,代表这个组织的领导,属Person类型。rn 现在我想从Orgnization派生一个类School,并使用它已经定义功能性函数,但我对Person类型的head不满意,因为它的字段太少了,只有一个Name,我想加一个Age字段,那么我该怎么办?rn 在C++中,这是很简单的事,只要把Orgnization设计成模板类就行了,但在VB中,这是个大难题——因为我实际上需要重载head变量。rn 在vb.net中引入了代理Delegate,以及隐藏Shadows概念,如果把它们和重载函数结合起来,可以实现对变量的重载,思路是这样的:rn1、 Delegate使得函数可以被当成参数传递给另一个函数;rn2、 函数是有返回值的,而且可以被重载,如果我让一个变量总是被一个函数指向,然后把这个函数重载,就可以通过重载函数,变相地重载这个变量,但有一个前提,即这个需要被重载的变量必须声明为Object类型或者其它的基类类型(如果能够确定重载类型总是这个基类类型的派生类型);rn3、 通过Shadows把需要被重载的基类变量隐藏起来,然后在派生类中定义一个同名的派生变量(类型是被重载的变量的类型的派生类型);rn4、 在基类中,凡是要引用被重载的变量,都不直接去引用,而是引用一个指向它的Delegate类型函数;rn5、 在派生类中,把这个Delegate类型的函数重载,从而变相实现对基类变量的重载。rn例:rnrnNamespace prn Public Class Personrn Public Name As Stringrn End Classrnrn Public Class Orgnization '基类rn Public head As New Person 'head需要被重载rn Protected Delegate Function F_HEAD() As Personrnrn Protected Overridable Function GetHead() As Person '关键:这个函数总是指向基类的head,rn且可被重载rn Return headrn End Functionrnrn Public sub DisplayHead()rnMsgBox(GetHead().Name.ToString()) ‘间接调用head变量rn这里有个必须注意的地方:GetHead后必须带括号rn 如果不想这么别扭,也很简单——把GetHead设计成rn 属性rn End subrn '…rn End Classrnrn Public Class SchoolHead 'head将被重载成这个类型rn Inherits Person rn Public Age As Integerrn End Classrnrn Public Class Schoolrn Inherits Orgnizationrn Public Shadows head As New SchoolHead '先用Shadows隐藏基类的head,然后声明一个新的headrnrnProtected Overrides Function GetHead() As Person '重载这个函数,因而基类所有对headrn的调用,原来是被映射到基类的GetHeadrn函数,现在则被映射到派生类的这个rn函数。而这个函数是指向派生类的rnhead变量的,从而基类所有函数对原rn来的head的调用全被重定向到派生rn类的head上rn Return headrn End Functionrn '…rnEnd Classrnrn现在做段代码来测试一下:rnpublic sub trn Dim p As New Schoolrn head.Name = "Lj"rn head.Age = 100rn DisplayHead()rnend subrn 结果显示的是lj,这说明DisplayHead最终作用到了派生类的head上——Shadows的语义说明中指出,基类的函数总作用在基类的被隐藏成员上,但这里用了一个小技巧,实现了重定向,使基类的函数作用到了派生类的成员上。rn 从派生类的角度来看,重载head没有费太多代码,只是加了一个重载函数而已,关键是基类要设计好——应了那句老话:前人栽树,后人乘凉rnrn这个例子说明了重载变量最基本的思路,但它也有明显的不足:rn1、 派生类的GetHead()为Person类型,而不是SchoolHead类型,因而在派生类的函数中每次调用这个函数,还必须得用CType把它转换过来,很不方便。但如果认为这个派生类的head变量不会再被继承,就可以不用使用GetHead函数,而是直接用派生类的head就行了。但是如果认为这个派生类的head有可能还要被重载,那就没有办法,必须要转换。对于使用频繁的情况,当然还可以再设计一个私有函数(或属性),用它来包装CType,并返回SchoolHead类型,而在其它派生类的函数中,用这个私有函数再转一道,这可以让写代码轻松点;rn2、 如果基类有一个公共属性Head(当然也可能是函数),它对外传递head对象,这就有点麻烦,因为派生类需要它对外传递SchoolHead类型的实例。这也有办法来解决:再用一个Shadows把基类的这个公共属性隐藏起来,并设计一个同名的Head属性,在Get段,可以这么写:rnreturn headrn如果基类中还有其它有用的代码,则可以在前面加几句:head=MyBase.Head …rn3、 这个方法虽然在功能上实现了重载变量,但每调用一个重载变量(不论是在类的内部,还是外部)都要转好几个函数,程序性能明显要受影响,因此如果不是特别需要,也没必要这么干,不如直接粘代码。rn4、 序列化问题。上面这个例子中,如果对School进行序列化,会发现在声明序列化器时出错,但是只要把基类Orgnization中的head成员声明为protected就可以解决问题。其实不光是这个应用,只要是用Shadows去隐藏基类变量,且这个基类变量是public 型,就会出现这个错误。我猜想原因是:虽然基类变量被隐藏了,但并非它就不存在了,事实上它还在内存里,但序列化器却没有发现这个问题,它只知道要对公共变量去进行检测,结果发现有两个同名的变量,所以就不知道怎么办了,只有报错。不过只要把这种变量声明为private或protected就行了——这也是一个缺点吧。rn
如何在servicemix中用webservice?
找了些资料,还是没弄明白如何在servicemix中用webservicern也就是说如何封装webservice供servicemix调用rn还请大虾指点!rn刚接触,还请详细一点.谢谢先!
相关热词 c#检测非法字符 c#双屏截图 c#中怎么关闭线程 c# 显示服务器上的图片 api嵌入窗口 c# c# 控制网页 c# encrypt c#微信网页版登录 c# login 居中 c# 考试软件