Я так близок к завершению этой программы. Он найдет медиану массива из 5 значений. У меня есть одна последняя ошибка, которую я не могу уйти. Поскольку я новичок в C ++, я понятия не имею, в чем может быть проблема. Я исследовал ошибку снова и снова здесь и в Google; неудачно.
Вот код:
#include <algorithm>
#include <functional>
#include <array>
#include <iostream>
using namespace std;
int main()
{
int integer1, integer2, integer3, integer4, integer5;
//Input of integers
std::cout << "Enter the first integer: ";
std::cin >> integer1;
std::cout << "Enter the second integer: ";
std::cin >> integer2;
std::cout << "Enter the third integer: ";
std::cin >> integer3;
std::cout << "Enter the fourth integer:";
std::cin >> integer4;
std::cout << "Enter the fifth integer:";
std::cin >> integer5;
std::array <int,5> a = {integer1, integer2, integer3, integer4, integer5};
//Sort array
std::sort(a.begin(), a.end());
for (int a : a) {
std::cout << a << " ";
}
std::nth_element(a.begin(), a.begin()+1, a.size()/2, a.end());
std::cout <<"The median of the integers "<<integer1<<", "<<integer2<<", "<<integer3<<", "<<integer4<<", and "<<integer5<< " is " <<a[a.size()/2]<< '\n';
std::endl (std::cout);return 0;
}
В сообщении об ошибке указано: «IntelliSense: экземпляр перегруженной функции отсутствует». Std :: nth_element соответствует списку аргументов, типы аргументов: (std :: _ Array_iterator, std :: _ Array_iterator, unsigned int, std :: _ Array_iterator)
Помоги мне закончить это дело! Заранее спасибо.
Вы неправильно поняли, что nth_element
делает, и пытаются использовать его неправильно.
Эта функция берет диапазон, который не обязательно отсортирован, и частично сортирует его так, что n-й элемент находится на своем правильном месте. Если вы используете эту функцию, чтобы найти медиану, вам не нужно сначала сортировать.
Если у вас уже есть отсортированный диапазон [first, last)
тогда n-й элемент этого диапазона указан first + n
,
Я думаю, что вы имели в виду:
std::nth_element(a.begin(), a.begin()+a.size()/2, a.end());
Пожалуйста, обратитесь к C ++ ссылка.