2015-01-31 2 views
1

Привет всем Я работаю над проектом для школы, я уверен, что сам код прав, но я не знаю, почему в моей среде IDE появляются ошибки.Возможные ошибки синтаксиса с первым C++

проект - простая игра для угадывания номера.

говорит:

In function 'int main()':| 
35|error: 'elif' was not declared in this scope| 
35|error: expected ';' before '{' token| 
37|error: expected ';' before '{' token| 
40|error: 'else' without a previous 'if'| 

вот мой код:

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

main(){ 
    int upper = 100; 
    int lower = 1; 
    int guess; 
    int answer; 
    int turnCounter = 0; 


    string name; 

    cout << "Hello, welcome to the number game!" << endl; 
    cout << "What's your name? " << endl; 
    cin >> name; 
    cout << "Nice to meet you " << name << "!" << endl; 
    cout << "Ok let's get started, think of a number between 1 and 100, and I'll try to guess it!" 
     << "If my guess is too high type a 1, if it is too low type a 0 or 10 if I get it right!" << endl; 

    bool keepgoing = true; 
    while (keepgoing){ 
      turnCounter ++; 
      guess = (upper + lower)/ 2; 
      cout << "Is the answer " << guess << "?" << endl; 
      cin >> answer; 
      if (answer == 1){ 
       upper = guess; 
      } elif (answer == 0){ 
       lower = guess; 
      } elif (answer == 10){ 
       cout << "Great! I'm so Awesome!" << endl; 
       keepgoing = False; 
      } else { 
       cout << "Something went wrong, answer again: "; 
       cin >> answer; 
      }//end if loop 
    } //end of while loop 
}//end main 
+4

в C++ нет таких ключевых слов, как 'elif'. Вам нужно 'else if' –

ответ

8
  1. main() должен быть int main()
  2. False должен быть false
  3. elif должен быть else if

Это делает код составленным как минимум.

На уровне знаний на С ++ вы можете в значительной степени доверять компилятору, чтобы быть прав. Если он говорит, что ваш код сломан, это действительно так.

+0

yeah lol, я полагал, что я просто не знал, что это было иначе, если бы вместо elif (я только что пришел из изучения python) Спасибо за ваши исправления! ... Извините, так долго отвечал, мой Интернет получил нокаутировал :( – Cyrus

1

Вы пришли из фона Python?

Во-первых, таких ключевых слов нет, как elif.

Вы должны использовать else if как

if (answer == 1){ 
    upper = guess; 
} else if (answer == 0){ 
    lower = guess; 
} 

Кроме того, вы должны объявить False в false.

Наконец, вы не указали тип возврата int для основного. его следует объявить.

int main() 
{ 
    // your code here 
} 
+0

В C++ нет неявного int. –

+0

@TC Спасибо. Сделано редактирование. –

+0

Strange Debian G ++ 4.7.2-5 компилируется отлично без возвращаемого типа. Возможно, с более высоким уровнем предупреждения он будет жаловаться. –

0

попробовать еще, если вместо Elif

if (answer == 1){ 
     upper = guess; 
    } else if (answer == 0){ 
     lower = guess; 
Смежные вопросы