Есть код: #include<iostream> #include<ctime> using namespace std; int main() {...

0 голосов
343 просмотров

Есть код:
#include
#include
using namespace std;
int main() {
setlocale(LC_ALL, "rus");
srand(time(NULL));
int arr[15];
cout << "Неотсортированный массив из 15 случайных чисел: { ";<br> for (int i = 0; i < 15; i++) {
arr[i] = 0 + rand() % (20) - 10;
cout << arr[i] << " ";<br> }
cout <<"}"<< endl;<br> cout << "Отсортированный массив: [ ";<br> 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]<<" ";<br> cout << "]" << endl;<br> return 0;
}
Задание: числа в массиве - рандомные, нужно их отсортировать так: сначала отрицательные на уменьшение, потом положительные на уменьшение.
У меня только по возрастанию сортировать получаеться(


Информатика (195 баллов) | 343 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

//Microsoft (R) C/C++ Optimizing Compiler Version 19.00.23506 for x64
#include
#include
int main()
{
std::array 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(std::cout, " "));
}

(4.2k баллов)
0

Во-первых, мне здесь ничего не понятно, во-вторых нужно через цикл сделать

0

Код писал я сам, мне просто сортировку немного подправить ивсе

0

О том что нужно править именно ваш код и о том что нужно делать именно через цикл, нигде не сказано

0

Какие претензии?

0

Согласен, но разве стоит роздувать из этого скандал ?

0

У меня есть вопрос: как этот массив задать рандомными числами, допустим от -10 до 10 ?

0

методов много, вот у меня, можно сказать задано, рандомно, от -10 до 10

0

смотря что понимать под рандомными числами и как или кто их должен задавать..