1

私はプログラミングに関しては非常に初心者ですが、YouTube でいくつかのチュートリアルを見て、さまざまなビデオで教えられている概念のいくつかを組み合わせてみることにしました。私がやりたいことは、株式市場への投資に対するリターンを計算する 3 つのパラメーターを持つ関数を用意することです。私のメインでは、ユーザーから関数の 3 つのパラメーターを取得し、それぞれを変数に格納し、関数を呼び出すときにそれらの変数をパラメーターに使用したいと考えています。現在エラーが発生していますが、すべてを入力する前に、私のコードをお見せします。問題を発見できるかもしれません。

  #include <iostream>
  #include <cmath>

  using namespace std;

float stockMarketCalculator(float p, float r, int t){
float a;

for(int day = 1; day <=t; day++){
    a = p * pow(1+r, day);
        cout << a << endl;
}

}

int main()
{
float p;
float r;
int t;


cout << "Please enter the principle" << endl;
cin >> p >> endl;

cout << "Please enter the rate" << endl;
cin >> r >> endl;

cout << "Please enter the time in days" << endl;
cin >> t >> endl;
cout << stockMarketCalculator(p, r, t);

return 0;
}
4

4 に答える 4

1

私はあなたのプロトタイプを読みました

float stockMarketCalculator(float p, float r, int t)

そして、関数の戻り値が重要であると想定しました。実際、main() 関数から、次のように記述します。

cout << stockMarketCalculator(p, r, t);

元のコードでは、不確定な値を書き込もうとします。

戻り値を気にしない場合は、次を使用する必要があります。

void stockMarketCalculator(float p, float r, int t)

coutそして、から値を取得しようとしないでくださいmain()-直接呼び出すだけです(unziberlaの回答を参照)。

一方、戻り値を気にする場合はreturn、以下の元の回答に as を追加してください。最終値のみを気にする場合は、これを行う方がクリーンなインターフェイスです。

元の回答:(後世のために)

追加する必要があります

return a;

あなたにstockMarketCalculator

多くの場合、これはコンパイラによって警告として報告されますが、設定によってはそうでない場合もあります。

于 2012-11-01T23:26:37.453 に答える
1

最初のエラー: stockMarketCalculator 関数は値を返す必要があります!

return a;

2 番目のエラー (3 回): endl に cin は必要ありません。取り除くだけです。

楽しみ!

于 2012-11-01T23:32:35.727 に答える
1

コードが修正されました

#include <iostream>
#include <cmath>

using namespace std;

void stockMarketCalculator(float p, float r, int t)
{
    float a;

    for(int day = 1; day <= t; day++)
    {
        a = p * pow(1+r, day);
        cout << a << endl;
    }
}

int main()
{
    float p;
    float r;
    int t;

    cout << "Please enter the principle" << endl;
    cin >> p;

    cout << "Please enter the rate" << endl;
    cin >> r;

    cout << "Please enter the time in days" << endl;
    cin >> t;

    stockMarketCalculator(p, r, t);

    return 0;
}

修正

cinストリームは必要ありませんendl

stockMarketCalculator必要な値が既に出力されているため、出力する値を返す必要はありません。そのため、それを宣言しvoid、単にmain関数で呼び出しました。

于 2012-11-01T23:35:27.633 に答える
0

あなたのstockMarketCalculator関数は float を返すと言っていますが、return ステートメントはありません。

return a;for ループの後、関数の右中括弧の前に移動しstockMarketCalculatorます。

于 2012-11-01T23:30:45.793 に答える