Приведенный ниже код не печатает обновленные векторные элементы после замены элементов, которые меньше среднего значения первого и последнего элемента.
Как можно улучшить этот код, пользовательский массив данных указанного length и заменяет каждый элемент, который меньше среднего значения первого и последнего элемента, средним значением.
Есть ли лучший способ передачи вектора в функцию или более эффективный способ управления памятью?
#include <iostream>
#include <vector>
std::vector<double> getData()
{
int n;
std::vector<double> intputData;
std::cout << "Enter array length\n";
std::cin >> n;
std::cout << "Enter the numbers\n";
for(int i = 0; i < n; i++){
int tmpIn;
std::cin >> tmpIn;
intputData.push_back(tmpIn);
}
return intputData;
}
void modifyData(std::vector<double> &data_mo)
{
double f=data_mo[0];
double l=data_mo[data_mo.size() - 1];
double av = (f + l)/2;
for (auto j: data_mo)
{
if(j < av){
j = av;
}
}
}
void printData(std::vector<double> &data_pr)
{
for (auto i: data_pr)
{
std::cout << i << " ";
}
std::cout << '\n';
}
int main(){
std::vector<double> data_ma = getData();
modifyData(data_ma);
printData(data_ma);
return 0;
}