在C中使用'else'的预期标识符

时间:2019-01-25 23:23:30

标签: c

尝试用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 :(得分:1)

您已在程序中连续放置了两个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可以为您做到这一点。它使阅读程序的逻辑更加容易。