这是一个愚蠢的问题,但说实话,我无法让它在我的程序中运行。我刚刚开始使用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
}
我似乎无法将'桩'交给我的其他功能,玩家转动
答案 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()
}