このプログラムでは、最小、最大、平均、中央値を計算する複数の値を返すのに問題があります。私がやった最初のことは参照引数を渡すことでしたが、それはうまくいきました - しかし、構造体やクラスの作成は複数の値を返すのが望ましい方法です。複数の値を返そうとしています
私は試しましたが、私は良い結果を得ることができませんでした。ここまで私はこれまで何を得ているのですか?
#include "std_lib_facilities.h"
struct maxv{
int min_value;
int max_value;
double mean;
int median;
};
maxv calculate(vector<int>& max)
{
sort(max.begin(), max.end());
min_value = max[0];
int m = 0;
m = (max.size()-1);
max_value = max[m];
for(int i = 0; i < max.size(); ++i) mean += max[i];
mean = (mean/(max.size()));
int med = 0;
if((max.size())%2 == 0) median = 0;
else
{
med = (max.size())/2;
median = max[med];
}
}
int main()
{
vector<int>numbers;
cout << "Input numbers. Press enter, 0, enter to finish.\n";
int number;
while(number != 0){
cin >> number;
numbers.push_back(number);}
vector<int>::iterator i = (numbers.end()-1);
numbers.erase(i);
maxv result = calculate(numbers);
cout << "MIN: " << result.min_value << endl;
cout << "MAX: " << result.max_value << endl;
cout << "MEAN: " << result.mean << endl;
cout << "MEDIAN: " << result.median << endl;
keep_window_open();
}
もちろん、calculate関数の変数は宣言されていません。私は正しい方法でこれを実装して正しい値を返す方法を単に分かりません。これまで私が試したことから、私は非常に解釈された価値を得てきました。どんな助けもありがとう - ありがとう。
P.S.私はこのトピックに関する他のスレッドを見てきましたが、実際にはcalculate()に渡す必要のある引数とmaxv構造体の変数の間に実際には違いがないので、私はまだ混乱しています。
なぜ完全な機能を表示していませんか?平均値をゼロに初期化しないため、中央値が誤って計算される可能性があります。 – Dingo
「これまでに得たものはここにあります」と言ってもいいですね。 – ChrisW