2013-04-13 4 views
1

Я пишу это для удовольствия:C++ Ошибка выражения: expected ';' до того «{» лексема

#include <iostream> 
#include <cstdlib> 
using namespace std; 

int Arsenal = rand()%3; 
int Norwich = rand()%3; 

int main() { 
    if (Arsenal > Norwich) { 
    cout << "Arsenal win the three points, they are in the Top Four"; 
    return 0; 
    } else if (Arsenal == Norwich) { 
    cout << "The game was a draw, both teams gained a point"; 
    return 0; 
    } else (Norwich > Arsenal) { 
     cout << "Norwich won, Arsenal lost"; 
     return 0; 
    } 
} 

, и я попытался скомпилировать его в г ++, но я получаю эту ошибку:

arsenalNorwich.cpp: In function, 'int main' 
arsenalNorwich.cpp:15:30: error: expected ';' before '{' token 

Я понятия не имею, что я сделал не так, и не учитель CS в моей школе. Хотя это просто для удовольствия, это сводит меня с ума.

+2

Учитель не делает? ............ – chris

+0

* «Я понятия не имею, что я сделал не так» * - вы выбрали школу с учителем, который не знает C++, по звуку! +1 для публикации четко сформулированного вопроса, несмотря на то, что он был совершенно новым для stackoverflow. – JBentley

+1

В будущем сообщите нам, какая линия - линия 15. Сохраняет все, чтобы подсчитывать строки. –

ответ

8

вы пропустили один if здесь:

else if (Norwich > Arsenal) 
    ///^^^if missing 

Между тем, это не хорошо, чтобы положить

int Arsenal = rand()%3; 
int Norwich = rand()%3; 

перед тем main. Еще один момент заключается в том, что перед первым вызовом rand() вы должны сначала установить случайное семя.

Ваш if-else можно упростить следующим образом:

if (Arsenal > Norwich) { 
    cout << "Arsenal win the three points, they are in the Top Four"; 
} else if (Arsenal == Norwich) { 
    cout << "The game was a draw, both teams gained a point"; 
} else { //^^^no need to compare values again since it must be Norwich > Arsenal 
     //when execution reaches this point 
    cout << "Norwich won, Arsenal lost"; 
} 
return 0; 
+2

+1 правильный, но если он не является <и не является ==, можно сказать, что отсутствует выражение 'if' или * extra *;) – msw

+1

@msw согласился, обновил сообщение. – taocp

+1

@msw Я бы сделал еще один шаг и сказал, что 'else' должен быть * предпочтительным * над' else if (выражение) '- это более читаемо в том смысле, что читатель может легко понять, что происходит в * каждом возможном случае *, потому что вы предоставили окончательный улов. – JBentley

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