2011-11-02 54 views
1

好吧,我用Google搜索,并在这里找到一些答案在本网站关于这一点,但答案是太不一样了,我真的它们做任何事情,所以我再问一次,希望为最好。范围没有宣布,初学者蜗牛竞速游戏

我用g ++下面的错误;

snailrace.cpp: In function ‘int race(int, int)’: 

snailrace.cpp:101:21: error: ‘rand’ was not declared in this scope 


snailrace.cpp:123:3: error: a function-definition is not allowed here before ‘{’ token 


snailrace.cpp:128:3: error: expected ‘}’ at end of input 

我想我一定能解决所有问题,除了snailrace.cpp:101:21: error: ‘rand’ was not declared in this scope我都试过了,它不会帮助! 我该如何解决这个问题!?这让我疯狂。 谢谢!

//The snail race. 

#include <iostream> 
#include <ctime> 

//Function declaration. 
int race(int,int); 
void race(void); 
int menu(void); 
int placebet(int); 
void init(void); 

//Variables 
int money = 200; 

//the main function 
int main(void) 
{ 
    using std::cout; 

    init(); 
    int user_respons; 

    cout << "Welcome to the snail race!\n"; 

    while(user_respons = menu()) 
    { 

    switch(user_respons) 
    { 
     case 1: 
     case 2: 
     case 3: 
    ::money += 
    race(placebet(user_respons), user_respons); 
    break; 

     case 4: //The user did not bet 
    race(); 
    break; 
    } 
} 
return 0; 

} 

//Display user menu and sends user selection to the main function 
int menu(void) 
{ 
    using std::cout; 
    using std::cin; 

    int user_respons; 

    cout << "You have " << money << " USD.\n"; 

    do 
    { 
    cout << "Race Menu: \n\n" 
    << "1) Bet on snail 1\n" 
    << "2) Bet on snail 2\n" 
    << "3) Bet on snail 3\n" 
    << "4) Do not bet, just watching" 
    << "0) Leave the race"; 

    cin >> user_respons; 
    } 
    while(user_respons < 0 && user_respons > 4); 
    return user_respons; 
} 

//Decide how much one person will bet on a snail. 

int placebet(int user_respons) 

{ 
    using std::cout; 
    using std::cin; 

    int bet_amount; 

    cout << "Snail " << user_respons << " is a good choice!\n"; 
    cout << "How much would you like to bet on your snail?\n"; 
    cin >> bet_amount; 
    return bet_amount; 
} 

//if just watching the race 
void race(void) 
{ 
    race(0, 0); 
} 

//if they are betting money. 
int race(int money, int user_respons) 
{ 
    using std::cout; 
    using std::cin; 

    //Stores random number 
    int winner = rand() % 3 + 1; 

    cout << "And the snails are off!\n"; 
    cout << "Look at them go! \n"; 
    cout << "The winner snail is " << winner << "\n"; 

    if(winner == user_respons) 
    { 
    cout << "You win!\n"; 

    return money * 2; 
    } 
    else 
    { 
    cout << "You lost.\n"; 

    return money/2; 
    } 


    //Handles the program start random 
    void init(void) 
    { 
    using std::srand; 
    using std::time; 

    srand(time(0)); 
    } 
+2

这是功课编码?如果是这样,添加一个标签.. –

+0

@ R.MartinhoFernandes不错盐 – Jared

+2

蜗牛赛跑听起来不可思议 –

回答

17

randcstdlib一部分,你不包括。添加

#include <cstdlib> 
+0

谢谢! #include 是问题所在,你看我知道了,但我仍然错过了它。 –

+0

没问题,你的蜗牛比赛运气不错,也许考虑随机为真正的蜗牛比赛准备线程! – Joe

+0

呵呵,我总觉得'rand()'出于某种原因在''里。 Google说:“rand ctime”:3,810,000个结果,“rand cstdlib”:91,200个结果。 –

3

您忘记了void init(void)之前的支架。

int race(int money, int user_respons) 
{ 
    /* ... */ 
    else 
    { 
     cout << "You lost.\n"; 
     return money/2; 
    }  
} /* <---- missing */ 


//Handles the program start random 
void init(void) 
{ 
    using std::srand; 
    using std::time; 

    srand(time(0)); 
} 

这可能是由于缩进不一致造成的。

2

对于第一个错误,你需要#include <stdlib.h>(必须为rand

+0

编辑...没什么。 –

2

如果你正在使用gcc,那么你必须包括

#include<cstdlib>