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

0 голосов

Есть код:
#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 баллов) в категории Информатика
1 Ответ
0 голосов
ответил от Одаренный (4.2k баллов)
 
Лучший ответ

//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, " "));
}

оставил комментарий от Начинающий (195 баллов)

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

оставил комментарий от Начинающий (195 баллов)

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

оставил комментарий от Одаренный (4.2k баллов)

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

оставил комментарий от Одаренный (4.2k баллов)

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

оставил комментарий от Начинающий (195 баллов)

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

оставил комментарий от Начинающий (195 баллов)

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

оставил комментарий от Одаренный (4.2k баллов)

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

оставил комментарий от Одаренный (4.2k баллов)

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

...