2013-10-09 48 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

相關問題