0 / 0 / 0
Регистрация: 10.05.2014
Сообщений: 16
1

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

12.06.2014, 18:09. Показов 7677. Ответов 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).
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.06.2014, 18:09
Ответы с готовыми решениями:

Сортировать элементы последовательности на четных местах по возрастанию, а на нечетных по убыванию
Дана последовательность x1,x2,...,x20. Элементы, cтоящие на четных местах, расположить в порядке...

Отсортировать элементы массива по возрастанию с сохранением позиций нулей
Хелп!Не могу никак написать правильный код...вот условие:отсортировать элементы массива...

Преобразовать массив: перенести элементы с четных позиций в начало массива, а с нечетных - в конец
/*1. Найти минимальный по модулю элемент массива. 2. Найти сумму модулей элементов массива,...

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

1
272 / 266 / 146
Регистрация: 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]);
       }
    }
1
12.06.2014, 18:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.06.2014, 18:50
Помогаю со студенческими работами здесь

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

Отсортировать элементы массива стоящие на четных местах по убыванию
Задан массив a. Отсортировать все элементы стоящие на четных местах по невозрастанию.

Необходимо отсортировать элементы одномерного динамического массива по возрастанию
Ребзя, задание следующее: Разработать программу, которая вводит текст на английском языке и выводит...

Отсортировать по убыванию элементы массива слева от случайного числа, и справа - по возрастанию.
Дан массив из 20 целых чисел со значениями от 1 до 20. Необходимо: написать функцию,...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru