Вычислить медиану значений, хранящихся в векторе - C ++?
Я студент-программист, и для проекта, над которым я работаю, одна из вещей, которые мне нужно сделать, - это вычислить медианное значение вектора значений int. Я должен сделать это, используя только функцию сортировки из STL и функции-члены вектора, такие как.begin()
, .end()
, а также.size()
.
Я также должен убедиться, что нашел медиану, имеет ли вектор нечетное число значений или четное число значений.
И яПрикрепленныйНиже я включил мою попытку. Так куда я иду не так? Буду признателен, если вы захотите дать мне несколько советов или ресурсов, чтобы двигаться в правильном направлении.
Код:
int CalcMHWScore(const vector<int>& hWScores)
{
const int DIVISOR = 2;
double median;
sort(hWScores.begin(), hWScores.end());
if ((hWScores.size() % DIVISOR) == 0)
{
median = ((hWScores.begin() + hWScores.size()) + (hWScores.begin() + (hWScores.size() + 1))) / DIVISOR);
}
else
{
median = ((hWScores.begin() + hWScores.size()) / DIVISOR)
}
return median;
}
Спасибо!!