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

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

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

Упорядочить заданную последовательность чисел так, чтобы каждый элемент, стоящий на нечетном месте, был больше каждого из соседних - C++

02.06.2013, 14:13. Просмотров 432. Ответов 2
Метки нет (Все метки)

Здесь совсем у меня вариантов нету.. не сталкивался с подобной сортировкой до этого.
Нужно составить алгоритм, упорядочивающий заданную последовательность чисел так, чтобы каждый элемент, стоящий на нечетном месте, был больше каждого из соседних. Обеспечить ввод параметров и количество элементов массива с клавиатуры.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.06.2013, 14:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Упорядочить заданную последовательность чисел так, чтобы каждый элемент, стоящий на нечетном месте, был больше каждого из соседних (C++):

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

Отсортировать заданную последовательность так, чтобы все нули оказались в конце - C++
Задача: Дана последовательность чисел, отсортировать эту последовательность так, чтобы все нули оказались в конце, а все остальные числа...

Поменять каждый элемент массива, стоящий на нечетном месте, на элемент, стоящий справа - Pascal ABC
Дан одномерный массив A. Написать программу, которая будет менять каждый элемент, стоящий на нечетном месте, на элемент, стоящий справа

Удалить каждый символ, стоящий на нечетном месте - Pascal ABC
Программа должна в заданном тексте удалить каждый символ, стоящий на нечетном месте.

Сформировать матрицу так, чтобы каждый последующий элемент начиная со ворого был больше придыдущего на 5 - Turbo Pascal
написать программу формирования и вывода двумерного массива произвольного размера так, чтобы каждый последующий элемент начиная со ворого...

Заменить каждый отрицательный элемент его квадратом, если он стоит на нечетном месте - Pascal
Помогите мне, пожалуйста, написать вот эти задачи: 2. Заменить каждый отрицательный элемент его квадратом, если он стоит на нечетном...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
лилиэн
6 / 6 / 0
Регистрация: 22.11.2012
Сообщений: 95
02.06.2013, 14:30 #2
алгоритм:
1)Делаем простую сортировку по убыванию
10 9 8 7 6 5 4 3 2 1 0
2)Меняем попарно числа 1 с 2 2 с 3 3 с 4 и тд
9 10 7 8 5 6 3 4 1 2 0


вот и все
это гарантирует что числа на нечетных местах будут больше своих соседей
кроме если у нас есть одинаковые числа к примеру с последовательностью 5 5 5 5 5 1 3
такая сортировка не пройдет
а в других случаях пройдет )))
Удачи реализовать
0
Issues
430 / 365 / 37
Регистрация: 06.08.2012
Сообщений: 961
02.06.2013, 16:09 #3
Можно было сделать всё компактней, но так как ты новичок, то вот:
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>
 
void Print(int[], const int);
void Sort(int[], const int);
 
int main()
{
    int size;
 
    std::cout << "Size: "; std::cin >> size;
 
    int* arr = new int[size];
 
    std::cout << "Enter " << size << " element's: ";
    for (int i = 0; i < size; ++i)
        std::cin >> arr[i];
 
    std::cout << std::endl;
 
    std::cout << "Before: ";
    Print(arr, size);
    
    Sort(arr, size);
 
    std::cout << "After : ";
    Print(arr, size);
 
    delete []arr;
 
    system("PAUSE");
    return 0;
}
 
void Print(int a[], const int sz)
{
    for (int i = 0; i < sz; ++i)
        std::cout << a[i] << ' ';
    std::cout << std::endl;
}
 
void Sort(int a[], const int sz)
{
    int tmp;
 
    for (int i = 1; i < sz; i++)
    {
        for (int j = 0; j < sz; j++)
        {
            if (a[i] < a[j]) {
                tmp = a[i]; a[i] = a[j]; a[j] = tmp;
            }
        }
    }
 
    for (int i = 0; i < sz-1; i += 2) {
        tmp = a[i]; a[i] = a[i+1]; a[i+1] = tmp;
    }
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.06.2013, 16:09
Привет! Вот еще темы с ответами:

Сдвинуть строки циклическим сдвигом вправо так, чтобы на последнем месте был максимальный по модулю элемент - C (СИ)
в матрице сдвинуть строки циклическим сдвигом вправо так, что бы на последнем месте был максимальный по модулю элемент.

Как сделать так, чтобы каждый элемент ListBoxItem был растянут на всю ширину ListBox - C# WPF
Я бы хотел сделать так, чтобы каждый элемент ListBoxItem был растянут на всю ширину ListBox. Справа на рисунке это ItemsControl, но он не...

Преобразовать массив так, чтобы каждый элемент был как сумма себя и своего соседа впереди - Visual Basic
Преобразовать массив A(i) в массив B(i) так, чтобы в новом массиве каждый элемент получался бы как сумма себя и своего соседа впереди....

Сформировать массив так, чтобы каждый элемент, начиная с третьего, был равен произведеннию двух предыдущих - Pascal ABC
uses crt; var a:array of integer; i,n:integer; begin writeln (' Введите длину массива'); readln(n); writeln (' введите...


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

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

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