我有一个c ++任务。这是:
编写C ++程序以实现以下描述:
我做了我向我询问的所有事情,但我没有犯错误。但它没有按照我的要求工作。一直在处理这个问题超过5个小时。它让我发疯了。我过了100次就没用了。请帮忙.... 这就是我想出来的,我相信它没事,但是有些东西不见了,但我不知道它是什么。
#include <iostream>
using namespace std;
struct GStruct
{
int x;
int y;
};
int main()
{
struct LStruct
{
int x;
GStruct y[3];
};
LStruct V1;
LStruct V2;
cin>>V1.x;
cout<<V1.x<<endl;
for (int i=0; i<3;i++)
{
cin>>V1.y[i].x;
}
for (int i=0; i<3;i++)
{
cin>>V1.y[i].y;
}
cin>>V2.x;
cout<<V2.x<<endl;
for (int i=0; i<3;i++)
{
cin>>V2.y[i].x;
}
for (int i=0; i<3;i++)
{
cin>>V2.y[i].y;
}
for (int i=0; i<3; i++)
{
if (V1.y[i].x == V2.y[i].x && V1.y[i].y == V2.y[i].y && V1.x == V2.y)
continue;
else
cout<<"Not equal"<<endl;
}
return 0;
}
答案 0 :(得分:1)
首先按照我之前的建议将V1.x == V2.y
更改为V1.x == V2.x
。
然后将相等性检查更改为此,因为如果所有成员都相等,则只希望两个对象相等。
bool equal = true;
for (int i=0; i<3; i++)
{
if (V1.y[i].x == V2.y[i].x && V1.y[i].y == V2.y[i].y && V1.x == V2.x)
continue;
else
{
equal = false;
break;
}
}
if ( equal )
cout<<"Equal"<<endl;
else
cout<<"Not equal"<<endl;