2

C++ の課題があります。それは次のとおりです。

次の記述を実装する C++ プログラムを作成します。

  1. グローバル構造を定義し、次のメンバーを含む GStruct という名前を付けます。X を整数として b. 整数としての Y。
  2. メイン内にローカル構造を定義し、次のメンバーで LStruct という名前を付けます。X を整数として b. Y[3] を GStruct として
  3. main 内で、タイプ LStruct の 2 つの変数 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;
}
4

1 に答える 1

1

まず、私の前に提案されたように変更V1.x == V2.yします。V1.x == V2.x次に、等価チェックをこれに変更します。これは、すべてのメンバーがすべて等しい場合にのみ 2 つのオブジェクトを等しくする必要があるためです。

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;
于 2013-10-09T15:29:32.870 に答える