Регистрация Вход
Информатика Студенческий Thoril
Решено

Есть код: #includelt;iostreamgt; #includelt;ctimegt; using namespace std; int main() { setlocale(LC_ALL, "rus"); srand(time(NULL)); int arr[15]; cout lt;lt; "Неотсортированный массив из 15 случайных чисел: { "; for (int i = 0; i lt; 15; i++) { arr[i] = 0 + rand() (20) - 10; cout lt;lt; arr[i] lt;lt; " "; } cout lt;lt;"}"lt;lt; endl; cout lt;lt; "Отсортированный массив: [ "; for (int i = 0; i lt; 15; i++) { for (int j = i+1; j lt; 15; j++) { if (arr[i] gt; arr[j]) { swap(arr[i], arr[j]); } } } for (int i = 0; i lt; 15; i++) cout lt;lt; arr[i]lt;lt;" "; cout lt;lt; "]" lt;lt; endl; return 0; } Задание: числа в массиве - рандомные, нужно их отсортировать так: сначала отрицательные на уменьшение, потом положительные на уменьшение. У меня только по возрастанию сортировать получаеться(

165
ОТВЕТЫ

//Microsoft (R) C/C++ Optimizing Compiler Version 19.00.23506 for x64
#include lt;iostreamgt;
#include lt;arraygt;
int main()
{
std::arraylt;int, 10gt; mas = { 1, 5, -4, 9, -6, -2, 7, 8, -5, 0 };
auto it = std::partition(mas.begin(), mas.end(), [](const intamp; i) { return i lt; 0; });
std::sort(mas.begin(), it, [](const intamp; x, const intamp; y) { return x gt; y; });
std::sort(it, mas.end(), [](const intamp; x, const intamp; y) { return x gt; y; });
std::copy(mas.begin(), mas.end(), std::ostream_iteratorlt;intgt;(std::cout, " "));
}

9
Отв. дан
Для написания вопросов и ответов необходимо зарегистрироваться на сайте