profile
Опубликовано 6 лет назад по предмету Информатика от maximus312454

Есть код:
#include<iostream>
#include<ctime>
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;
}
Задание: числа в массиве - рандомные, нужно их отсортировать так: сначала отрицательные на уменьшение, потом положительные на уменьшение.
У меня только по возрастанию сортировать получаеться(

  1. Ответ
    Ответ дан clinteastwood2

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

    1. Ответ
      Ответ дан clinteastwood2
      Какие претензии?
    2. Ответ
      Ответ дан maximus312454
      Согласен, но разве стоит роздувать из этого скандал ?
    3. Ответ
      Ответ дан maximus312454
      У меня есть вопрос: как этот массив задать рандомными числами, допустим от -10 до 10 ?
    4. Ответ
      Ответ дан clinteastwood2
      методов много, вот у меня, можно сказать задано, рандомно, от -10 до 10
    5. Ответ
      Ответ дан clinteastwood2
      смотря что понимать под рандомными числами и как или кто их должен задавать..
Самые новые вопросы