-3

エラーが発生しています

エラー: '{' トークンの前に式が必要です

次のコードをコンパイルしようとすると:

#include <stdio.h>

int main()
{
    srand (time(NULL));
    int Seat[10] = {0,0,0,0,0,0,0,0,0,0};
    int x = rand()%5;
    int y = rand()%10;

    int i, j;
    do {
        printf("What class would you like to sit in, first (1) or economy (2)?");
        scanf("%d", &j);
        if(j == 1){
            Seat[x] = 1;
            printf("your seat number is %d and it is type %d\n", x, j);
        }
        else{
            Seat[y] = 1;
            printf("your seat number is %d and is is type %d\n", y, j);
        }
    }while(Seat[10] != {1,1,1,1,1,1,1,1,1,1});
}

背景: このプログラムは、航空会社の座席予約システムとして設計されています。

4

2 に答える 2

4

この線:

 while(Seat[10] != {1,1,1,1,1,1,1,1,1,1});

有効なC構文ではありません。次のような変数を追加allOccupiedして、次のようにします。

bool allOccupied = false;
do
{
   ...
   //Check if all Seats are occupied and set allOccupied to true if they are
}
while (!allOccupied);

別の方法は、次のようなものを追加することです。

int Full[10] = {1,1,1,1,1,1,1,1,1,1};
do
{
}
while(memcmp(Full, Seat, sizeof(Full));
于 2012-04-11T12:15:49.070 に答える
0

以下を使用して、すべての配列要素が1であるかどうかを確認しています。

while(Seat[10] != {1,1,1,1,1,1,1,1,1,1});

これは正しくありません。ループを実行して各要素を確認する必要があります。または、から0に変更された要素の数を保持し、1その数を使用してループを解除することをお勧めします。

于 2012-04-11T12:16:43.553 に答える