
С++ сортировка. Дан одномерный массив целых чисел A[1..n]. Напишите программу, которая перепишет в
массив B[1..n] сначала в убывающем порядке все положительные элементы массива А, а затем в возрастающем порядке все отрицательные элементы массива А. Например, для A = (4, -8, 7, -6, 0, -7, 5), получим B = (7, 5, 4, 0, -8, -7, -6).

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

#include <iostream>
#include <iomanip>
using namespace std;
int main() {
int n,k;
cout<<"n = "; cin>>n;
int a[n],b[n];
srand(time(NULL));
// запись в массив
for (int i=0; i<n; i++) {
a[i]=15-rand()%30; cout<<a[i]<<" ";
}
cout<<endl;
// сортировка массива по убыванию
for (int i=0; i<n-1; i++)
for (int j=i+1; j<n; j++)
if (a[j]>a[i]) swap(a[i],a[j]);
// поиск первого отрицательного
k=0;
while (a[k]>=0) k++;
// запись положительных по убыванию
for (int i=0; i<k; i++) b[i]=a[i];
// запись отрицательных по возрастанию
for (int i=k; i<n; i++) b[i]=a[n-i+k-1];
// вывод массива b
for (int i=0; i<n; i++) cout<<b[i]<<" ";
cout<<endl;
system("pause");
return 0;
}
n = 15
-6 -9 -7 12 7 7 -6 6 11 -4 1 10 9 -8 -1
12 11 10 9 7 7 6 1 -9 -8 -7 -6 -6 -4 -1


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