错误:预期';'之前' {'代币

时间:2015-10-17 02:06:58

标签: c

我最近编写了一个简短的小型避难所生存游戏,我遇到了错误"期待&#39 ;;'之前' {'令牌&#34 ;.错误在第28行,第23个字符:

#include <stdio.h>

 int main(int argc, char *argv[])
 {//setup changing variables
    int X = 0;
    int money = 300;
    int resources[10];
    resources[0] = 100;
    resources[1] = 200;
    printf("Welcome!\nFirst we will choose the extra supplies for your shelter!");
    while(X < 1)
    {
        //Setup the input
        char input[15];
        //Introduction:
        printf("You have $%d dollars\n1: Cards ($4)\n2: Ounce of Gold ($20)\n3: 10 Pounds of Spare Parts($20)\n4: Ham Radio ($75)\n5: Calendar ($5)\n6: Book of Blueprints ($10)\n7: (2 Gallons) Extra Water Storage ($6)\n8: (1 gallon) Fuel ($10)\n9:  Check Current Supplies\n10:Start\n", money);
        //Have player buy Items
        if(input == 1){ 
            if(money > 3){
                money = money - 4;
                resources[2] = resources[2] + 1;
                printf("You have purchased a deck of cards...\n");
            }
            else{
                printf("You can not afford this item\n");       
            }
        }
        elif(input == 2)
            {
            if(money > 19)
            {
                money = money - 20;
                resources[3] = resources[3] + 1;
                printf("You have purchased an Ounce of Gold...\n");
            }
            else
            {
                printf("You do not have enough money\n");
            }
        }
        elif(input == 3){
            if(money > 19){
                money = money - 20;
                resources[4] = resources[4] + 10;
                printf("You have purchased 10 pounds of Scrap Parts...\n");
            }
            else{
                printf("You do not have enough money\n");
            }
        }
        elif(input == 4){
            if(money > 74){
                money = money - 75;
                resources[5] = resources[5] + 1;
                printf("You have purchased 1 Ham Radio...\n");
            }
            else{
                printf("You do not have enough money.\n");
            }
        }
        elif(input == 5)
        {
            if(money > 4)
            {
                money = money - 5;
                recources[6] = resources[6] + 1;
                printf("You have just purchased a calendar...\n");
            }
            else
            {
            printf("You can not afford the calendar.\n");
            }
        }
        elif(input == 6)
        {   
            if(money > 9){
                money = money - 10;
                resources[7] = resources[7] + 1;
                printf("You have just purchased a Book filled with Blueprints...\n");
            }
            else{
                printf("You can not afford the Book of Blueprints.\n"); 
            }
        }
        elif(input == 7){
            if(money > 5){
                int money = money - 6;
                int resources[8] = resources[8] + 2;
                printf("You have purchased 2 extra gallons of water storage...");
            }
            else{
                printf("You do not have enough money...");
            }
        }
        elif(input == 8){
            if(money > 9){
                money = money - 10;
                resources[9] = resources[9] + 1;
                printf("You have purchased one gallon of fuel...");
            }
            else{
                printf("You can not afford the fuel...");
            }
        }
        elif(input == 9){
            printf("You currently have:   \n%s Pounds of Food\n%s Gallons of Water\n%s Decks of Cards\n%s Ounces of Gold\n%s Pounds of Spare Parts\n%s Ham Radios\n%s Calendars\n%s Books of Blueprints\n%s Gallons of Fuel", resources[0], resources[8] + resources[1], resources[2], resources[3], resources[4],     resources[5], resources[6], resources[7], resources[9]);
            fgets(input, sizeof(input), stdin);
        }
        elif(input == 10){
            break;
        }
        else
        {
            printf("Input Invalid");
            fgets(input, sizeof(input), stdin);
        }
    }
    int h = 100;
    while(int h > 0)
    {
        printf("%d", h);
        h = h - 1;
    }
}

2 个答案:

答案 0 :(得分:1)

  • 您无法在C中使用elif。您应该使用else if代替。
  • printf中,%s不适用于打印整数。您应该使用%d代替。
  • 使用char input[15];input == 1之类的比赛毫无意义。您可以使用int char;
  • input未初始化。你应该阅读一些数据。
  • recources未定义。它应该是resources
  • 的拼写错误
  • 我将input的类型更改为int并将scanf放在分支之前,因此请删除fgets(input, sizeof(input), stdin);
  • 删除intint money = money - 6;int resources[8] = resources[8] + 2;
  • 中多余的while(int h > 0)
  • 未使用参数,因此将int main(int argc, char *argv[])更改为int main(void)。 (可选以避免警告)

好的,现在编译错误消失了。

#include <stdio.h>

int main(void)
{//setup changing variables
    int X = 0;
    int money = 300;
    int resources[10];
    resources[0] = 100;
    resources[1] = 200;
    printf("Welcome!\nFirst we will choose the extra supplies for your shelter!");
    while(X < 1)
    {
        //Setup the input
        int input;
        //Introduction:
        printf("You have $%d dollars\n1: Cards ($4)\n2: Ounce of Gold ($20)\n3: 10 Pounds of Spare Parts($20)\n4: Ham Radio ($75)\n5: Calendar ($5)\n6: Book of Blueprints ($10)\n7: (2 Gallons) Extra Water Storage ($6)\n8: (1 gallon) Fuel ($10)\n9:  Check Current Supplies\n10:Start\n", money);
        //Have player buy Items
        if(scanf("%d", &input) != 1) return 1;
        if(input == 1){ 
            if(money > 3){
                money = money - 4;
                resources[2] = resources[2] + 1;
                printf("You have purchased a deck of cards...\n");
            }
            else{
                printf("You can not afford this item\n");       
            }
        }
        else if(input == 2)
            {
            if(money > 19)
            {
                money = money - 20;
                resources[3] = resources[3] + 1;
                printf("You have purchased an Ounce of Gold...\n");
            }
            else
            {
                printf("You do not have enough money\n");
            }
        }
        else if(input == 3){
            if(money > 19){
                money = money - 20;
                resources[4] = resources[4] + 10;
                printf("You have purchased 10 pounds of Scrap Parts...\n");
            }
            else{
                printf("You do not have enough money\n");
            }
        }
        else if(input == 4){
            if(money > 74){
                money = money - 75;
                resources[5] = resources[5] + 1;
                printf("You have purchased 1 Ham Radio...\n");
            }
            else{
                printf("You do not have enough money.\n");
            }
        }
        else if(input == 5)
        {
            if(money > 4)
            {
                money = money - 5;
                resources[6] = resources[6] + 1;
                printf("You have just purchased a calendar...\n");
            }
            else
            {
            printf("You can not afford the calendar.\n");
            }
        }
        else if(input == 6)
        {   
            if(money > 9){
                money = money - 10;
                resources[7] = resources[7] + 1;
                printf("You have just purchased a Book filled with Blueprints...\n");
            }
            else{
                printf("You can not afford the Book of Blueprints.\n"); 
            }
        }
        else if(input == 7){
            if(money > 5){
                money = money - 6;
                resources[8] = resources[8] + 2;
                printf("You have purchased 2 extra gallons of water storage...");
            }
            else{
                printf("You do not have enough money...");
            }
        }
        else if(input == 8){
            if(money > 9){
                money = money - 10;
                resources[9] = resources[9] + 1;
                printf("You have purchased one gallon of fuel...");
            }
            else{
                printf("You can not afford the fuel...");
            }
        }
        else if(input == 9){
            printf("You currently have:   \n%d Pounds of Food\n%d Gallons of Water\n%d Decks of Cards\n%d Ounces of Gold\n%d Pounds of Spare Parts\n%d Ham Radios\n%d Calendars\n%d Books of Blueprints\n%d Gallons of Fuel", resources[0], resources[8] + resources[1], resources[2], resources[3], resources[4],     resources[5], resources[6], resources[7], resources[9]);
        }
        else if(input == 10){
            break;
        }
        else
        {
            printf("Input Invalid");
        }
    }
    int h = 100;
    while(h > 0)
    {
        printf("%d", h);
        h = h - 1;
    }
}
  

享受!

对不起,我不喜欢但很生气。

答案 1 :(得分:0)

在c elif不存在。所以,它给出了这个错误。 如果并进行验证,请将elif更改为else。