-3

これはばかげた質問ですが、正直なところ、プログラムで機能させることはできません。私はC++を始めたばかりですが、それを間違え続けています。ユーザーに「pile」の値を入力してもらい、次に2番目の関数に移動して、pileを2で除算します。私の教授は、グローバル変数の使用は許可されていないと言っています。これが私のコードです:

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
}

「パイル」を他の関数playerTurnに引き継ぐことができないようです

4

4 に答える 4

1

ステートメントはreturn関数を終了し、呼び出されている場所に値を返します。

したがって、コードが実行しているのは、終了main()してオペレーティングシステムにパイルを返すことです。

引数としてpileを使用して、playerTurnを呼び出す必要があります。

于 2013-02-22T19:38:40.653 に答える
1

returnステートメントは、現在の関数からすぐに戻ります。したがって、関数で使用すると、main関数から戻りますmain

変数を別の関数に渡すには、引数として渡します。

playerTurn(pile);

また、引数を取る関数を宣言するときは、他の変数と同じように、引数を完全に指定する必要があります。

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

引数の受け渡しや値の戻りを理解するのに問題がある場合は、理解するまで基本を読み続ける必要があります。

于 2013-02-22T19:38:55.480 に答える
0
  • の前方定義がplayerTurn実装と一致しません。これをに変更する必要がありますint playerTurn(int pile)

  • の実装でplayerTurnは、引数の型(つまり)を指定していませんint

  • 私が見る限り、あなたはから戻ろうとしていpileますmain。これにより、実際にプログラムが終了します。代わりに、これを引数として渡したいようです。これを行うには、代わりに角かっこ内に配置します(もちろん、return xyz;線を削除します)。

于 2013-02-22T19:40:34.390 に答える
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()
}
于 2013-02-22T19:44:04.823 に答える