최소, 최대, 평균, 중간 값을 계산하는이 프로그램에서 여러 값을 반환하는 데 문제가 있습니다. 내가 한 첫 번째 일은 참조 인수를 전달하는 것이 었습니다.하지만 구조체 나 클래스를 만드는 것이 여러 값을 반환하는 데 선호되는 방법이라고 읽었습니다.여러 값을 반환하려고 시도했습니다.
그래서 저는 시도했지만 좋은 결과를 얻을 수 없었습니다. 여기 내가 지금까지 얻은 것이 있습니다.
#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. 이 주제에 관한 다른 스레드를 살펴 봤는데 나는 calculate()에 전달해야하는 인수와 maxv 구조체의 변수 사이에 실제로 차이가 없으므로 여전히 혼란 스럽습니다.
왜 완전한 기능을 표시하지 않습니까? 평균을 0으로 초기화하지 않기 때문에 중앙값이 잘못 계산 될 수 있습니다. – Dingo
"지금까지 내가 가지고있는 것이 여기 있습니다."라고 말하는 것이 좋습니다. – ChrisW