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

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

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

Отсортировать по убыванию элементы массива с нечетными номерами методом обмена в прогрмамме С++ - C++

14.06.2011, 00:04. Просмотров 788. Ответов 1
Метки нет (Все метки)

Дан целочисленный массив A(n) с элементами, сгенерированными случайными числами в диапазоне (-20,20).
ТРЕБУЕТСЯ: Отсортировать по убыванию элементы массива с нечетными номерами методом обмена.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.06.2011, 00:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Отсортировать по убыванию элементы массива с нечетными номерами методом обмена в прогрмамме С++ (C++):

Отсортировать по убыванию элементы массива с нечетными номерами методом выбора - C++
Отсортировать по убыванию элементы массива с нечетными номерами методом выбора. На dev c++ надо сделать, но я не могу :(

Отсортировать по убыванию положительные элементы массива методом обмена - C++
Отсортировать по убыванию положительные элементы массива методом обмена

Отсортировать элементы массива с нечетными номерами - C++
В первой строке записано число n - размер массива. (N <= 100000) В следующей строке записаны n чисел - элементы массива. Следует...

Отсортировать элементы массива по возрастанию методом обмена - C++
Отсортировать элементы массива по возрастанию методом обмена. есть код, int *mas; int n; void mas_in() { int i;...

Отсортировать по возрастанию элементы массива, с четными номерами методом выбора - C++
Дан целочисленный массив с элементами от -20 до 20. Отсортировать по возрастанию элементы массива, с четными номерами методом выбора. ...

Отсортировать по возрастанию элементы массива с четными номерами методом выбора - C++
Дан целочисленный массив с элементами от -20 до 20. Отсортировать по возрастанию элементы массива с четными номерами (метод выбора)

1
tylix
68 / 55 / 6
Регистрация: 10.06.2011
Сообщений: 149
14.06.2011, 07:45 #2
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
48
49
50
51
52
53
54
55
56
57
58
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
 
int gen_random( int range_min, int range_max ) {
    return (range_min+rand()%(range_max-range_min+1));
}
 
#define N 20
 
int main() {
    int a[N];
    int *p;
    int tmp, c;
    int i, j;
 
    srand(time(NULL));
 
    for (i = 0; i < N; i++ )
        a[i] = gen_random(-20, 20);
 
//  No sorted
    for (int x = 0; x < N; x++)
        if ((x+1) % 2)
            cout << "("<<a[x] << ") ";
        else
            cout << a[x] << " ";
 
    cout << endl;
 
// получаем кол-во нечетных
    c = N / 2;
    if (N % 2) c++;
//---------------------------------------
    
    for (j = c - 1; j > 0; j--){
          p = a;
        for (i = 0; i < j; i++) {
            if (*p  < *(p+2) ) {
                tmp = *p;
                *p = *(p+2);
                *(p+2) = tmp;
            }
            p += 2; //перепрыгиваем четный
        }        
    }
//---------------------------------------
//  Show Sorted
    for (int x = 0; x < N; x++)
        if ((x+1) % 2)
            cout << "("<<a[x] << ") ";
        else
            cout << a[x] << " ";
 
    cout << endl;
    return 0;
}
Добавлено через 34 минуты
текст между //---- и // ---- заменить на этот ->
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
for( i = 0; i < c; i++) {            // i - номер прохода
        if (N % 2) // определяем является посл. эл. четн или нечетн
            p = &a[N-1];
        else
            p = &a[N];
        for( j = c - 1; j > i; j-- ) {     // внутренний цикл прохода
            if ( *(p-2) < *p ) {
                tmp=*(p-2);
                *(p-2) = *p;
                *p = tmp;
            }
            p -= 2;
        }
    }
Разницы почти нет (оба рабочих), но этот более правильный "пузырек", такой, каким его везде описывают )
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.06.2011, 07:45
Привет! Вот еще темы с ответами:

Отсортировать массив методом прямого обмена по убыванию - C++
Для последовательности из 11 введенных с клавиатуры чисел почитать и вывести на экран разность между суммами четных и нечетных чисел....

Вывести элементы массива с нечетными номерами, являющиеся нечетными - C++
Задан массив с количеством элементов N. Вывести элементы с нечетными номерами, являющиеся нечетными.

Вывести сначала элементы массива с четными номерами, а затем - с нечетными номерами - C++
Дан массив А размера N.Вывести вначале его элементы с четными номерами(в порядке возрастания номеров),а затем-элементы с нечетными...

Удалить из массива элементы с нечетными номерами - C++
Дан целочисленный массив размера N(&gt;2). Удалить из массива все элементы с нечетными номерами (1,3...). Условный оператор не использовать. ...


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

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

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