Есть код: #include #include using namespace std; int main() { setlocale(lc_all, "rus"); srand(time(null)); int arr[15]; cout < < "неотсортированный массив из 15 случайных чисел: { "; for (int i = 0; i < 15; i++) { arr[i] = 0 + rand() % (20) - 10; cout < < arr[i] < < " "; } cout < < "}"< < endl; cout < < "отсортированный массив: [ "; for (int i = 0; i < 15; i++) { for (int j = i+1; j < 15; j++) { if (arr[i] > arr[j]) { swap(arr[i], arr[j]); } } } for (int i = 0; i < 15; i++) cout < < arr[i]< < " "; cout < < "]" < < endl; return 0; } : числа в массиве - рандомные, нужно их отсортировать так: сначала отрицательные на уменьшение, потом положительные на уменьшение. у меня только по возрастанию сортировать получаеться(

yegor655 yegor655    2   26.09.2019 22:40    1

Ответы
Шоце Шоце  16.08.2020 22:53

//Microsoft (R) C/C++ Optimizing Compiler Version 19.00.23506 for x64
#include <iostream>
#include <array>
int main()
{
std::array<int, 10> mas = { 1, 5, -4, 9, -6, -2, 7, 8, -5, 0 };
auto it = std::partition(mas.begin(), mas.end(), [](const int& i) { return i < 0; });
std::sort(mas.begin(), it, [](const int& x, const int& y) { return x > y; });
std::sort(it, mas.end(), [](const int& x, const int& y) { return x > y; });
std::copy(mas.begin(), mas.end(), std::ostream_iterator<int>(std::cout, " "));
}

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика