如何返回变量,以便在C ++中的另一个函数中使用它?

时间:2013-02-22 19:36:12

标签: c++

这是一个愚蠢的问题,但说实话,我无法让它在我的程序中运行。我刚刚开始使用C ++而且我做错了。我让用户输入'pile'的值然后我想转到我的第二个函数并将桩分成两个。我的教授说我不允许使用全局变量。这是我的代码:

int playerTurn();
int main() //first function
{
    int pile = 0;
    while ( pile < 10 || pile > 100 ) {
        cout << "How many marbles would you like there to be?" << endl;
        cout << "Please choose between 10 and 100: ";
        cin >> pile;
    }
    return pile; //the variable I'm trying to return is pile
    playerTurn();
}

int playerTurn(pile) //second function
{
    int limit = pile / 2; //says pile is an undeclared identifier
}

我似乎无法将'桩'交给我的其他功能,玩家转动

4 个答案:

答案 0 :(得分:1)

return语句退出函数并返回一个值到它被调用的位置。

您的代码所做的就是退出main()并将回馈给操作系统。

你需要使用桩作为参数调用playerTurn。

答案 1 :(得分:1)

return语句立即从当前函数返回 。因此,当您在main函数中使用它时,它将从main函数返回。

要将变量传递给另一个函数,请将其作为参数传递:

playerTurn(pile);

另外,当你声明一个带参数的函数时,你必须完全指定参数,就像你做其他变量一样:

void playerTurn(int pile)
{
    // ... your implementation here...
}

如果您无法理解传递参数或返回值,那么您应该继续阅读基础知识,直到您理解它为止。

答案 2 :(得分:0)

  • 您对playerTurn的前瞻性定义与实施方式不符。您需要将其更改为int playerTurn(int pile)

  • playerTurn的实施未指定参数类型(即int)。

  • 据我所知,您正试图从pile返回main。这实际上将退出您的程序。你似乎想把它作为一个参数传递。要做到这一点,只需将其放在括号内(当然,摆脱return xyz;行)。

答案 3 :(得分:0)

检查评论的说明

int playerTurn(); // Function declaration

int main() //first function
{
    int pile; // Define variable before usage
    do  // Google do-while loops.
    {        
        cout << "How many marbles would you like there to be?" << endl;
        cout << "Please choose between 10 and 100: ";
        cin >> pile;
    }while ( pile < 10 || pile > 100 );

    // Calling the secondary function and passing it a parameter 
    // and then getting the result and storing it in pile again.
    pile = playerTurn(pile) 
}

// Not really sure what you are trying to do here but 
// assuming that you want to pass pile to this function 
// and then get the return type in main

int playerTurn(int pile) 
{
    int limit = pile / 2; //Processing.
    return limit;         // Return from inside the function, this value goes to pile in main()
}