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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Некорретно обрабатываются регулярные выражения http://www.cyberforum.ru/cpp-beginners/thread1735817.html
Здравствуйте, форумчане. Есть следующий пример: #include <iostream> #include <regex> int main() { std::string str("subject, subbase"); std::regex rx("sub\\w*");
C++ Подскажите библиотеку для дифф уравнений В программе Matlab есть функции для решение дифф уравнений с запаздыванием. Может для С++ есть библиотеки с подобными функциями ?? Если кто знает какие-нибудь, подскажите пожалуйста!! Добавлено через 10 часов 53 минуты Помогите кто-нибудь ! http://www.cyberforum.ru/cpp-beginners/thread1735807.html
C++ Найти минимальное значение среди элементов, стоящих над главной диагональю, и максимальное среди элементов
Дана действительная матрица 7x7. Найти минимальное значение среди элементов, стоящих над главной диагональю, и максимальное среди элементов, находящихся ниже главной диагонали, а также их местоположение.
Работа с матрицей, сортировка C++
/del
C++ Списки http://www.cyberforum.ru/cpp-beginners/thread1735784.html
С клавиатуры вводится несколько целых чисел. Создать список, который содержит все числа, которые на один больше или меньше введенных чисел и не содержит повторяющихся переменных.
C++ Не работает условие #include <iostream> #include <math.h> #include <conio.h> #include <clocale> #include <random> #include <ctime> #define l 4 #define m 5 using namespace std; подробнее

Показать сообщение отдельно
enzo32
0 / 0 / 0
Регистрация: 19.02.2016
Сообщений: 39

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

15.05.2016, 22:01. Просмотров 222. Ответов 6
Метки (Все метки)

Есть задание:
Дан массив из 20 целых чисел со значениями от 1 до 20.
Необходимо:
1. написать функцию, разбрасывающую элементы массива произвольным
образом;(это я уже сделал)
2. создать случайное число из того же диапазона и найти позицию этого
случайного числа в массиве;
3. отсортировать элементы массива, находящиеся слева от найденной позиции
по убыванию, а элементы массива, находящиеся справа от найденной
позиции по возрастанию.
Вот 2 и 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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
#include <iostream>
#include <Windows.h>
#include <ctime>
#include <iomanip>
using namespace std;
 
void MixFunc(int mas[], int N)//перемешивание элементов массива
{
    for (int i = 0;i<N;i++)
    {
        int tmp = 0;
        int tmp2 = 0;
        tmp = rand() % 20;
        tmp2 = mas[i];
        mas[i] = mas[tmp];
        mas[tmp] = tmp2;
    }
}
 
int Search(int mas[], int N)//поиск случайного элемента
{
    for (int i = 0;i<N;i++)
    {
        if (mas[i] == N)
            return i;
    }
    return -1;
}
 
void LeftSort(int mas[], int Index)//сортировка слева от элемента по возрастанию
{
    for (int i = 0;i<Index;i++)
    {
        for (int k = Index - 1;k>i;k--)
        {
            if (mas[k]<mas[k - 1])
            {
                int tmp = mas[k - 1];
                mas[k - 1] = mas[k];
                mas[k] = tmp;
            }
 
        }
    }
}
 
void RightSort(int mas[], int size, int Index)//сортировка справа от элемента по убыванию
{
    for (int i = Index + 1;i<size;i++)
    {
        for (int k = size - 1;k>i;k--)
        {
            if (mas[k]>mas[k - 1])
            {
                int tmp = mas[k - 1];
                mas[k - 1] = mas[k];
                mas[k] = tmp;
            }
        }
    }
}
 
 
 
void main()
{
    SetConsoleOutputCP(1251);
    int const N = 20;
    int mas[N];
    srand(time(NULL));
    cout << " Начальный массив" << endl;
    for (int i = 0; i<N;i++)
    {
        mas[i] = rand() % 21+1;
        cout << mas[i] << " ";
    }
    cout << endl;
 
    //1. 
    cout << " Разбросаный массив произвольным образом" << endl;
    
    for (int i = 0; i<N;i++)
    {
        
        MixFunc(mas, N);
        cout << mas[i] << " ";
    }
    cout << endl;
 
    //2.
 
    cout << " Нахождение случайного числа "<< endl;
    int num;
    cin >> num;
    cout << "Случайное число: " << num << '\n';
    for (int i = 0; i<N;i++)
    {
        if (i ==num)
        {
            Search(mas, N);
            
        }
        else
        {
            cout << " Такого числа нет";
            cout << endl;
 
        }
            
        
    }
    cout << endl;
    
    
    //3.
    cout << " Отсортирований массив: слева от найденого по убыванию, справа - по возрастанию "<< endl;
 
    
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 02:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru