Ожидаемый идентификатор с использованием else в C - PullRequest
0 голосов
/ 26 января 2019

Пытаясь написать простую игру «угадай число» на C, он говорит мне, что на одном из моих «else» есть ожидаемый идентификатор, и я не уверен, в чем проблема, кто-нибудь это видит? (** около else, где проблема)

int main(int argc, const char * argv[]) {
    int correctnumber,guessnumber;

    correctnumber = 8;

    printf("Welcome to the guess-a-number game!\n");
    printf("I'm thinking of a number between 1 and 15. What is it?");
    scanf("%d", &guessnumber);

    if (guessnumber == correctnumber) printf("That was 8!");

    else
    {if (guessnumber > correctnumber)printf("No, try something lower:");
    else printf("No, try something higher:");
        scanf("%d", &guessnumber);
        if (guessnumber == correctnumber) printf("That was 8!");
        }

    **else**
        {if (guessnumber > correctnumber) printf("No, try something lower:");
    else printf("No, try something higher:");
         if (guessnumber == correctnumber) printf("That was 8!");

    else
                {printf("Sorry, you missed it. The answer was 8");

}

1 Ответ

0 голосов
/ 26 января 2019

Вы поместили два оператора else подряд в вашу программу.Проверьте свою логику и расположение скобок {}.Ниже приведена более отформатированная версия кода, которая более четко показывает проблему:

int main(int argc, const char* argv[])
{
    int correctnumber, guessnumber;

    correctnumber = 8;

    printf("Welcome to the guess-a-number game!\n");
    printf("I'm thinking of a number between 1 and 15. What is it?");
    scanf("%d", &guessnumber);

    if (guessnumber == correctnumber)
        printf("That was 8!");

    else {
        if (guessnumber > correctnumber)
            printf("No, try something lower:");
        else
            printf("No, try something higher:");
        scanf("%d", &guessnumber);
        if (guessnumber == correctnumber)
            printf("That was 8!");
    }

    else
    {
        if (guessnumber > correctnumber)
            printf("No, try something lower:");
        else
            printf("No, try something higher:");
        if (guessnumber == correctnumber)
            printf("That was 8!");

        else {
            printf("Sorry, you missed it. The answer was 8");
        }

, поэтому ваша структура

if () {/*block of code*/}
else {/*block of code*/}
else {/*block of code*/}

Эта секунда else вызывает ошибку.

Хорошая привычка - правильно форматировать код.XCode может сделать это для вас.Это облегчает чтение логики программы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...