2013-10-09 5 views
2

У меня есть назначение C++. Что:Как передать значения всем членам структуры

Напишите программу C++ реализовать следующее описание:

  1. Определить глобальную структуру и назовите его GStruct со следующими членами: а. X как целое b. Y как целое.
  2. Определите локальную структуру внутри основного и назовите ее LStruct следующими членами: a. X как целое b. Y [3] as GStruct
  3. Внутри основного объявления указываются две переменные V1 и V2 типа LStruct.
  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.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; 
+0

вы сделали опечатку V1.x == V2.y to V1.x == V2.y – DogDog

+0

спасибо @DogDog, отредактировал – Sigroad

Смежные вопросы