2013-10-09 49 views
2

我有一个C++任务。那就是:如何给所有结构成员赋值

写C++程序来实现以下描述:

  1. 定义一个全局结构,并将其命名为具有以下成员GStruct: 一个。 X为整数 b。 Y为整数。
  2. 在main中定义一个局部结构,并用下列成员命名为LStruct: a。 X为整数 b。 Y [3] as GStruct
  3. 主要声明LStruct类型的两个变量V1和V2。
  4. 使用输入语句(cin)为所有成员赋予值。
  5. 如果V1等于V2打印“它们相等”,则打印“不等于”。

我做了一切从我这里问,我没有任何错误。但它不像我问的那样工作。一直在处理这个问题超过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; 
} 
+1

我将从代码的正确缩进开始,以便您可以轻松阅读并真正看到自己在做什么。 – LihO

+0

你是什么意思的“它不工作”? – Beta

+0

预期结果和当前结果是什么? – DrakaSAN

回答

1

所有变化V1.x == V2.yV1.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; 
+0

您将错字V1.x == V2.y改为V1.x == V2.y – DogDog

+0

谢谢@DogDog,编辑过 – Sigroad

相关问题