Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
yurets17
1 / 1 / 0
Регистрация: 07.10.2013
Сообщений: 170
#1

Функция, сортирующая сначала нечетные числа в массиве по возрастанию, а потом четные по убыванию - C++

12.11.2013, 16:22. Просмотров 903. Ответов 3
Метки нет (Все метки)

Ребят, подскажите как написать функцию, которая будет сортировать сначала нечетные числа в массиве по возрастанию, а потом четные по убыванию?
есть такой пример, но работает почему-то неверно!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
bool goodDisposition(int x1, int x2){
    if (x1 % 2 != x2 % 2)
          return x1 % 2 < x2 % 2;
    else if( x1 % 2 == 0)
                 return x1>x2;
        else
               return x1 <  x2;
}
 
void sortChoise(double MyArray[], int size){
    for(int i=0; i<size-1;i++){
        for(int j = i + 1; j<size; j++) {
            if (!goodDisposition(MyArray[i] ,MyArray[j])){
                int x =  MyArray[i];
                MyArray[i] =  MyArray[j];
                MyArray[j] =  x;
            }
        }
    }
}
Добавлено через 1 час 2 минуты
Помогите, пожалуйста!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.11.2013, 16:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Функция, сортирующая сначала нечетные числа в массиве по возрастанию, а потом четные по убыванию (C++):

Cортировка в массиве: сначала все четные, а потом все нечетные числа - C++
Пользователь вводит элементы массива. Переставить в первую половину элементы, расположенные на четных позициях, а во вторую – на нечетных....

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

Сначала нечетные, потом четные - C++
Привет всем, подскажите, нужно сделать программу, которая из массива сначала выпишет нечетные числа, а потом четные, я взял похожее задание...

Функция сортирующая первую половину массива по убыванию, а вторую - по возрастанию - C++
Написать функцию, которая сортирует первую половину массива по убыванию, а вторую - по возрастанию, используя сортировку простыми...

Как вывести массив из функции сначала четные потом нечетные - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; // вывод четных и нечетных int even_odd(int a, int n) { int d, j...

Преобразовать массив таким образом, чтобы сначала располагались четные, а потом нечетные элементы - C++
Ребята , помогите : нужно составить алгоритм и программу преобразования массива A, таким образом , чтобы сначала распологались четные , а...

3
Drusha
6 / 6 / 0
Регистрация: 16.07.2013
Сообщений: 74
12.11.2013, 17:16 #2
Т.е. при исходнике 561892347 программа должна выводить что-то типа 135798642 или 183654729?
0
yurets17
1 / 1 / 0
Регистрация: 07.10.2013
Сообщений: 170
12.11.2013, 17:35  [ТС] #3
135798642
вот это правильно
0
Drusha
6 / 6 / 0
Регистрация: 16.07.2013
Сообщений: 74
12.11.2013, 18:26 #4
Вот получилось, вроде работает

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
#include<iostream>
using namespace std;
int main()
{
    int mas[10],temp;
    int i,j=1;
    cout << "Enter arrays: " << endl;
    for(i = 0; i < 10; i++) 
    {
        cout<< j++ << " :";
        cin >> mas[i];
    }
    for(i = 0; i<10; i++)
    {   
        for(j = 9; j > i; j--)
        {
            if(mas[j-1]%2==0 && mas[j]%2)
            {
                temp=mas[j-1];
                mas[j-1]=mas[j];
                mas[j]=temp;
            }
            if(mas[j-1]<mas[j] && mas[j]%2==0 && mas[j-1]%2==0)
            {
                temp=mas[j-1];
                mas[j-1]=mas[j];
                mas[j]=temp;
            }
             if(mas[j-1]>mas[j] && mas[j]%2 && mas[j-1]%2)
            {
                temp=mas[j-1];
                mas[j-1]=mas[j];
                mas[j]=temp;
            }
        }
    }
    for(i = 0; i < 10; i++) cout << mas[i] << ' ';
    return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.11.2013, 18:26
Привет! Вот еще темы с ответами:

Отсортировать четные элементы массива по возрастанию, а нечетные по убыванию - C++
помогите найти ошибку.не верно сортирует. #include &lt;iostream&gt; #include &lt;math.h&gt; #include&lt;stdlib.h&gt; #include&lt;conio.h&gt; ...

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

Нечетные строки матрицы упорядочить по убыванию, четные - по возрастанию (гномьей сортировкой) - C++
Всем привет! Есть задание: Отсортировать двумерный массив. Нечетные строки по убыванию, четные по возрастанию помощью гномьей...

Проверить, чередуются ли в массиве четные и нечетные числа. - C++
3.Дан целочисленный массив размера N. Проверить, чередуются ли в нем четные и нечетные числа. Если чередуются, то вывести 0, если нет, то...


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

Или воспользуйтесь поиском по форуму:
4
Yandex
Объявления
12.11.2013, 18:26
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru