2012-04-11 24 views
-2

Ich erhalte den FehlerCompiler-Fehler: erwartete Ausdruck vor ‚{‘ token

error: expected expression before ‘{’ token

beim Versuch, den folgenden Code zu kompilieren:

#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}); 
} 

Hintergrund: Das Programm ist so konzipiert, eine Fluggesellschaft zu sein, Platzreservierungssystem.

+4

Das liest sich wie Hausaufgaben. Ist es? – unwind

+0

es ist Teil eines Wochenlabors, ich konnte einfach nicht die Frage beschrieben werden ahaha – user1304516

+0

Ich denke nicht, dass es sehr edel ist, zu erwarten, dass andere mehr Arbeit machen, weil Sie nicht bohren konnten * – Yuri

Antwort

4

Die Linie:

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

ist nicht gültig C Syntax. Ich würde eine gewisse Variable wie allOccupied hinzufügen und wie folgt vorgehen:

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

Eine weitere Alternative wäre so etwas wie hinzufügen:

int Full[10] = {1,1,1,1,1,1,1,1,1,1}; 
do 
{ 
} 
while(memcmp(Full, Seat, sizeof(Full)); 
+0

hmm, ok, ich scheine ein ähnliches Ergebnis zu meinem ersten Versuch zu bekommen, mein einziges Problem ist jetzt, wie mache ich meinen Code zufällige Sitznummern generieren: |. Wenn ich meinen Code benutze, wird jedes Mal die selbe Sitznummer erzeugt, obwohl ich mit srand – user1304516

+1

'x' und' y' feste Werte außerhalb der 'while' Schleife bekomme und niemals ändern werde. –

+0

Warum boathering mit Zufälligkeit? den nächsten freien Platz zuweisen –

0

Sie verwenden die folgenden zu prüfen, ob alle Array-Elemente 1 sind :

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

was falsch ist. Sie müssen eine Schleife ausführen und jedes Element überprüfen, oder es ist besser, die Anzahl der Elemente, die von 0 in 1 geändert wurden, beizubehalten und diese Anzahl zu verwenden, um die Schleife zu unterbrechen.

Verwandte Themen