尝试用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");
}
答案 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可以为您做到这一点。它使阅读程序的逻辑更加容易。