
Сделать так чтобы элементы массива меньше 0 были в одной части массива, больше 0 в другой Пример:
Исходный массив: 4 -3 -2 -6 7 9 -8 6 Ответ: 4 6 7 9 | -6 -3 -2 -8 С++

Ответы на вопрос

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
bool cmp(int a, int b)
{
return a > b ? 1 : 0;
}
int main()
{
int n;
cin >> n;
vector <int> a(n);
for(int i = 0; i < n; ++i)
cin >> a[i];
sort(a.begin(), a.end(), cmp);
for(int i = 0; i < n; ++i)
cout << a[i] << " ";
return 0;
}



Для разделения элементов массива на две части в соответствии с условием, вы можете использовать алгоритм сортировки "partition" (разделение) из стандартной библиотеки C++. Вот как это можно сделать:
cpp#include <iostream>
#include <algorithm>
#include <vector>
int main() {
std::vector<int> array = {4, -3, -2, -6, 7, 9, -8, 6};
// Функция partition разделяет массив так, чтобы все элементы меньше 0 оказались перед всеми элементами больше 0.
auto partitionPoint = std::partition(array.begin(), array.end(), [](int num) {
return num < 0;
});
// Вывод разделенного массива.
std::cout << "Исходный массив: ";
for (const int& num : array) {
std::cout << num << " ";
}
std::cout << "\nОтвет: ";
for (auto it = array.begin(); it != partitionPoint; ++it) {
std::cout << *it << " ";
}
std::cout << "| ";
for (auto it = partitionPoint; it != array.end(); ++it) {
std::cout << *it << " ";
}
return 0;
}
Этот код сначала использует функцию std::partition
для разделения массива на две части: одна с элементами меньше 0 и другая с элементами больше или равными 0. Затем он выводит исходный массив и разделенный массив, разделяя элементы символом |
.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili