• Предмет: Информатика
  • Автор: taniyham
  • Вопрос задан 5 месяцев назад

Необхідно відсортувати перші дві третини масиву в порядку зростання якщо середнє арифметичне всіх елементів більше нуля; інакше — лише першу третину. Іншу частину масиву не сортувати, а розташувати у зворотному порядку.
С++

Ответы

Ответ дал: Zudencko
1

#include <iostream>

#include <algorithm>

#include <vector>

using namespace std;

void sortArray(vector<int>& arr) {

double sum = 0.0;

for (int i = 0; i < arr.size(); i++) {

sum += arr[i];

}

double avg = sum / arr.size();

int endIdx = (avg > 0.0) ? arr.size() * 2 / 3 : arr.size() / 3;

sort(arr.begin(), arr.begin() + endIdx);

reverse(arr.begin() + endIdx, arr.end());

}

int main() {

vector<int> arr = {3, 5, 1, -4, 8, 0, -2, 9, 12, 7, -6, 2};

sortArray(arr);

for (int i = 0; i < arr.size(); i++) {

cout << arr[i] << " ";

}

cout << endl;

return 0;

}

Вас заинтересует