3 / 3 / 1
Регистрация: 05.12.2014
Сообщений: 74
Записей в блоге: 3

Нечетные числа массива отсортировать по возрастанию, а четные по убыванию

06.06.2015, 23:26. Показов 3931. Ответов 34
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, уважаемые программисты и разработчики C++.
Вот такая задача стоит : разработать программу, в которой необходимо ввести динамический массив с клавиатуры, а затем все нечетные числа этого массива отсортировать по возрастанию, а четные по убыванию, следующим образом.
Например :
размерность 6
массив 6 5 4 3 2 1
выходные данные

1 3 5 6 4 2

Заранее большое спасибо !
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.06.2015, 23:26
Ответы с готовыми решениями:

Отсортировать четные элементы массива по возрастанию, а нечетные по убыванию
помогите найти ошибку.не верно сортирует. #include <iostream> #include <math.h> #include<stdlib.h> #include<conio.h> ...

Отсортировать четные элементы массива по возрастанию, а нечетные по убыванию
По четным по возрастанию по нечетным по убыванию. Пробую пузырьковую сортировку не получается(

В одномерном массиве отсортировать все четные числа по возрастанию, а нечетные - по убыванию на своих местах
В одномерном числовом массиве отсортировать все четные числа по возрастанию, а нечетные по убыванию на своих местах. Пример: 3284967 ...

34
3 / 3 / 1
Регистрация: 05.12.2014
Сообщений: 74
Записей в блоге: 3
07.06.2015, 01:14  [ТС]
Студворк — интернет-сервис помощи студентам
Velesthau,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream.h>
 
int main(){
/* ñîðòèðîâêà ìàññèâà */
 
int n,i;
cin >> n;
int *array;
array = new int [n]; 
cout << "dd"<< endl;
for(i=0;i<n;i++){
                 cin>>array[i];
                 }  
      for(i=0;i<n;i++){
                       int pos = i;
                       int tmp = array[i];
                       for(int j=i+1;j<n;j++){
                               if(array[j]<tmp){
                                                pos=j;
                                                tmp=array[j];
                                                }
                               }
                               array[pos]=array[i];
                               array[i]=tmp;
                               cout << array[i] << " " ;
                       }
        
system("pause");
return 0;
}
Добавлено через 29 секунд
Velesthau, спасибо, чувак, я понял как делать )
0
07.06.2015, 01:16

Не по теме:

Цитата Сообщение от tabbols Посмотреть сообщение
спасибо, чувак, я понял как делать
Сомневаюсь, чувак :) но дело твое.

0
3 / 3 / 1
Регистрация: 05.12.2014
Сообщений: 74
Записей в блоге: 3
07.06.2015, 01:18  [ТС]
Velesthau, сомневаешься в том, что я понял ?
0
07.06.2015, 01:19

Не по теме:

Цитата Сообщение от tabbols Посмотреть сообщение
Velesthau, сомневаешься в том, что я понял ?
Точно. В любом случае, решение выше у тебя есть.

0
3 / 3 / 1
Регистрация: 05.12.2014
Сообщений: 74
Записей в блоге: 3
07.06.2015, 01:30  [ТС]
Velesthau,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <iostream.h>
 
int main(){
/* сортировка массива */
 
int n,i;
cin >> n;
int *array;
array = new int [n]; 
for(i=0;i<n;i++){
                 cin>>array[i];
                 }  
      for(i=0;i<n;i++){
                       if(array[i]%2!=0){
                       int pos = i;
                       int tmp = array[i];
                       for(int j=i+1;j<n;j++){
                               if(array[j]<tmp and array[j]%2!=0){
                                                pos=j;
                                                tmp=array[j];
                                                }
                               }
                               array[pos]=array[i];
                               array[i]=tmp;
                               cout << array[i] << " " ;
                               }
                               }
      for(i=0;i<n;i++){
                       if(array[i]%2==0){
                       int pos = i;
                       int tmp = array[i];
                       for(int j=i+1;j<n;j++){
                               if(array[j]>tmp and array[j]%2==0){
                                                pos=j;
                                                tmp=array[j];
                                                }
                               }
                               array[pos]=array[i];
                               array[i]=tmp;
                               cout << array[i] << " " ;
                               }
                               }
                               cout << endl;
        
system("pause");
return 0;
}
Добавлено через 19 секунд
Velesthau, и все хорошо работает )
0
529 / 432 / 159
Регистрация: 25.11.2014
Сообщений: 1,662
07.06.2015, 01:37

Не по теме:

Хоть так.



Добавлено через 3 минуты

Не по теме:

Цитата Сообщение от tabbols Посмотреть сообщение
и все хорошо работает )
"хорошо" - понятие относительное )

0
3 / 3 / 1
Регистрация: 05.12.2014
Сообщений: 74
Записей в блоге: 3
07.06.2015, 01:37  [ТС]
Velesthau, я учусь не на программиста, так что мне и так уже хорошо, главное я научился )
0
529 / 432 / 159
Регистрация: 25.11.2014
Сообщений: 1,662
07.06.2015, 01:38

Не по теме:

Цитата Сообщение от tabbols Посмотреть сообщение
Velesthau, я учусь не на программиста, так что мне и так уже хорошо, главное я научился )
Ок-ок.



Добавлено через 44 секунды

Не по теме:

И если не секрет, то на какой специальности нынче задают это писать? Да еще и на плюсах? У нас, помню, у бухгалтеров был паскаль максимум.

0
3 / 3 / 1
Регистрация: 05.12.2014
Сообщений: 74
Записей в блоге: 3
07.06.2015, 01:39  [ТС]
Velesthau, учитель математики и информатики !
0
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
07.06.2015, 09:43
Цитата Сообщение от tabbols Посмотреть сообщение
мне нужно понять, как сделать сортировку
Фильтруешь массив на четные и не четные, т.о. будет два массива - четных и нечетных. Сортируешь эти массивы с учетом задания, далее эти два массива лепишь в один.
Можно сделать и без "промежуточных" массивов, но алгоритм будет на порядок сложнее.
Надеюсь знаешь как определить четное или нечетное ?
0
3 / 3 / 1
Регистрация: 05.12.2014
Сообщений: 74
Записей в блоге: 3
07.06.2015, 12:43  [ТС]
Почтальон, да, я уже сделал, я просто не знал, как отсортировать массив
0
529 / 432 / 159
Регистрация: 25.11.2014
Сообщений: 1,662
08.06.2015, 12:55
Цитата Сообщение от Почтальон Посмотреть сообщение
Можно сделать и без "промежуточных" массивов, но алгоритм будет на порядок сложнее.
Да не. Просто берешь любой алгоритм сортировки и немного меняешь условие. И все будет работать.
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
08.06.2015, 13:12
Velesthau, tabbols, забыли про удаление массива.
Velesthau, куда столько оффтопа?

Балуюсь
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <vector>
#include <algorithm>
#include <iostream>
 
using namespace std;
 
int main()
{
int n;                           //// Если так хочется
cin >> n;                          //
int *array;                        //
array = new int [n];               //
cout << "dd"<< endl;               //
for(int i=0;i<n;i++){              //
                 cin>>array[i];    //
                 }               ////
 
std::vector< int > even( 0 ),
                   odd ( 0 );
 
for( int count=0; count<n; count++ )
  if( array[count] % 2 )
    even.push_back( array[count] );
  else
    odd.push_back( array[count] );
 
std::sort( odd.begin(),  odd.end() );
std::sort( even.begin(), even.end() );
std::reverse( even.begin(), even.end() );
 
memcpy( array,              odd.begin(),  odd.size()  * sizeof( int ) );
memcpy( array + odd.size(), even.begin(), even.size() * sizeof( int ) );
 
for( int i=0; i<n; i++ )
  cout << array[i] << ' ';
 
cin.ignore(2);
 
delete []array;
return 0;
}
0
08.06.2015, 13:31

Не по теме:

Цитата Сообщение от SatanaXIII Посмотреть сообщение
Velesthau, куда столько оффтопа?
Все относительно.

0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
08.06.2015, 14:16
Цитата Сообщение от Velesthau Посмотреть сообщение
Все относительно.
Перефразирую:
 Комментарий модератора 
Поменьше оффтопа, пожалуйста.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.06.2015, 14:16

Сортировка массива: Четные числа — по возрастанию, нечетные числа — по убыванию
Дан целочисленный массив. Надо отсортировать его. Четные числа - по возрастанию Нечетные числа - по убыванию Эта программа является...

Сортировка массива вставкой, чтобы четные числа шли по возрастанию, а нечетные по убыванию
Всем привет! Есть задача отсортировать массив таким образом, чтобы четные числа шли в нем по возрастанию, а нечетные по убыванию. Числа...

Отсортировать чётные элементы по возрастанию, а нечётные по убыванию
Вот условие(могу кое где ошибаться в правильности постановки задачи) Составить одномерный массив, в котором бы выводилось 20(или более)...

Отсортировать четные строки матрицы по возрастанию, а нечетные по убыванию
помогите пожалуйста с программой))) отсортировать четные строки матрицы M*N по возрастанию, а не четные по убыванию (чтоб запускалась...

В массиве отсортировать четные строчки по возрастанию, а нечетные по убыванию
Дан двумерный массив с рандомными значениями , как отсортировать четные строчки по возрастанию, а нечетные по убыванию? from random...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
35
Ответ Создать тему
Опции темы

Новые блоги и статьи
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства. Жизнь действительно предъявляет каждому. . .
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru