如何为所有结构成员赋值

How to give values to all structure members

本文关键字:结构 成员 赋值      更新时间:2023-10-16

我有一个 c++ 作业。这是:

编写一个C++程序来实现以下说明:

  1. 定义一个全局结构,并使用以下成员将其命名为 GStruct:a. X 作为整数b. Y 为整数。
  2. 在 main 中定义一个本地结构,并使用以下成员将其命名为 LStruct:a. X 作为整数b. Y[3] 饰 GStruct
  3. 在 main 中声明两个变量 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;
}
首先

,按照我之前的建议将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;