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

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

Ответ:
tom159753
tom159753
21.08.2020 10:46
#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 
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?