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

Элементы массива с нечетных позиций необходимо отсортировать по возрастанию, с четных - по убыванию - C++

Восстановить пароль Регистрация
 
Компутерщик
0 / 0 / 0
Регистрация: 10.05.2014
Сообщений: 16
12.06.2014, 18:09     Элементы массива с нечетных позиций необходимо отсортировать по возрастанию, с четных - по убыванию #1
Значит есть одномерный массив из 10 чисел. Заполнен случайными значениями.
Числа расположенные на нечетных позициях необходимо отсортировать по возрастанию.
Числа расположенные на четных позициях необходимо отсортировать по убыванию.
Сортировка вроде работает правильно, а вот диапазон чисел како-то не правильный берется
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>
#include <cstdlib>
#include <ctime>
#include <iomanip>
using namespace std;
int main ()
{
    setlocale(LC_ALL, "");
    srand(time(NULL));
    const int size= 10;
    int temp, j;
    int a[size];
    for (int i = 0; i < size; i++)
    {
        a[i]=rand()%50;
        cout<<setw(2)<<a[i] <<" "; //начальный массив
    }
        cout<<endl;
    //для чисел которые стоят в массиве на нечетных местах + сортировка по возрастанию
    for(int i = 0 ; i < size ; i++) 
       for(j = 0 ; j < size - i - 1 ; j++)  
           if(a[j] > a[j+1]) 
           { 
              temp = a[j]; 
              a[j] = a[j+1] ; 
              a[j+1] = temp; 
           }
           cout<<"Массив отсортированный по возрастанию: ";
    for(int i = 0 ; i < size; i++)
        if (i%2!=0)
        cout<<setw(2)<<a[i]<<" ";
    //для чисел которые стоят в массиве на четных местах + сортировка по убыванию
    for(int i = 0 ; i < size ; i++) 
       for(j = 0 ; j < size - i - 1 ; j++)  
           if(a[j] < a[j+1]) 
           { 
              temp = a[j]; 
              a[j] = a[j+1]; 
              a[j+1] = temp; 
           }
           cout<<"\nМассив отсортированный по убыванию: ";
    for(int i = 0 ; i < size; i++)
        if (i%2==0)
        cout<<setw(2)<<a[i]<<" ";
    cout<<endl;
    return 0;
}
Как вы думаете что не правильно ? Может ифы и не стоило использовать при выводе чисел, а попробоват поизменять шаг циклам (например +2).
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.06.2014, 18:09     Элементы массива с нечетных позиций необходимо отсортировать по возрастанию, с четных - по убыванию
Посмотрите здесь:

C++ отсортировать элементы массива по возрастанию с сохранением позиций нулей
C++ в зависимости от четности/нечетности отсортировать элементы матрицы по убыванию/возрастанию
Дан целый массив максимальной размерности 20*20. Провести сортировку по возрастанию в нечетных строках массива и по убыванию в четных строках. C++
C++ Найти максимальный элемент. Отсортировать предшествующие ему элементы по убыванию, а следующие за ним элементы по возрастанию.
C++ Вывести элементы массива, которые стоят на нечетных номерах по убыванию или возрастанию
C++ Quicksort, отсортировать элементы массива, стоящие на четных позициях, чтобы они располагались по убыванию
Отсортировать по убыванию элементы массива слева от случайного числа, и справа - по возрастанию. C++
C++ Отсортировать чётные элементы по возрастанию, а нечётные по убыванию

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
12.06.2014, 18:50     Элементы массива с нечетных позиций необходимо отсортировать по возрастанию, с четных - по убыванию #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
    for(int i = 0 ; i < size ; i++)
    {
       for(j = 0 ; j < size - 2; j++)
       {
           if(j % 2 && a[j] < a[j + 2]) 
               std::swap(a[j], a[j + 2]);
           if(!(j % 2) && a[j] > a[j + 2])
               std::swap(a[j], a[j + 2]);
       }
    }
Yandex
Объявления
12.06.2014, 18:50     Элементы массива с нечетных позиций необходимо отсортировать по возрастанию, с четных - по убыванию
Ответ Создать тему
Опции темы

Текущее время: 21:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru