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

Отсортировать первую треть (или две трети) массива в порядке возрастания, остальную часть - развернуть - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Для чего использовать cmake? http://www.cyberforum.ru/cpp-beginners/thread1496054.html
Здравствуйте. У меня вопрос: Зачем использовать cmake? Можно же вручную (через "Создать проект") сделать проект в той же Visual Studio, а не использовать cmake. Поясните мне, а то я пугаюсь этой cmake.
C++ Сдвинуть элементы на одну позицию вправо\влево Ребята помогите пожалуйста с решением задачи на с++ : Сдвинуть элементы на одну позицию вправо\влево. http://www.cyberforum.ru/cpp-beginners/thread1496029.html
Священные войны А что лучше учить С++ или Делфи ?
Я просто не знаю что нужно учить. Подскажете ?
C++ Тело лямбды. Двумерный массив
Здравствуйте. Возник вопрос, при попытке реализации примитивнейшей программы. "Требуется {, вводящая тело лямбды". Что это значит? #include "stdafx.h" #include <iostream> using namespace std; int main() { setlocale(LC_ALL,"rus"); int a; cout<<"Введите массив "<<endl;
C++ Вызов функции-члена класса по адресу в памяти http://www.cyberforum.ru/cpp-beginners/thread1496016.html
Всем хорошего дня :) Допустим, что где-то есть static функция, не принимающая аргументов и ничего не возвращающая. Имея один лишь только её адрес в памяти, можно сделать вот так: void (*f)() = reinterpret_cast<void (*)()>(0x004028E0); f() Тут всё ясно. Теперь допустим, что есть функция-член класса (не статическая). Её адрес в памяти тоже известен. Нужно её вызвать...
C++ Угадайка с наименьшем количеством шагов Доброго времени суток , сижу сижу , не выходит у меня что-то. Игра угадайка , пользователь вводит число от 1 до 100 , компьютер должен угадывать с наименьшем количеством шагов. К примеру. Я выбрал число 14. Компьютер выдает 50? Я говорю ему через switch допустим меньше. Он делит пополам 50 и выдает 25 и спрашивает , я ему опять меньше, он выдает 12 или 13, я ему больше и тут, если я не... подробнее

Показать сообщение отдельно
Maksumko
12 / 12 / 4
Регистрация: 13.06.2015
Сообщений: 60
09.07.2015, 15:52     Отсортировать первую треть (или две трети) массива в порядке возрастания, остальную часть - развернуть
дано массив из 18 чисел , если среднее знач 2/3 массива ( первых 12 чисел ) больше указаного то сортируем ети 2/3, если нет то 1/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
const int sz = 18;
 
void sortArrayOne(int arr[], int halfPath);
void sortArrayTwo(int arr[], int halfPath);
 
int main()
{
    setlocale(LC_ALL, "rus");
    int myArray[sz];
    float averageNum = 0.0;
    float resAV = 0.0;
    int halfPath = 0;
 
    cout << "\nВведите среднее значение -> ";
    cin >> averageNum;
 
    srand(time(NULL));
    halfPath = (sz / 3) * 2;
 
    //Заповняємо масив
    for (int i = 0; i < sz; i++)
    {
        myArray[i] = rand() % 100 + 1;
    }
    //Виводимо масив
    cout << "\nВыводим массив : \n\n";
    for (int i = 0; i < sz; i++)
    {
        cout << " " << myArray[i];
    }
    //Сумуємо 2/3 масиву не чіпаючи 1/3
    for (int i = 0; i < halfPath; i++)
    {
        resAV += myArray[i];
        if (i == halfPath - 1)
        {
            resAV = resAV / i;
        }
    }
 
    //Провірка нашого значення
    if (resAV > averageNum)
    {
        cout << "\n\nСортируем №1 \n";
        sortArrayOne(myArray, halfPath);
    }
    if (resAV < averageNum)
    {
        cout << "\n\nСортируем №2 \n";
        sortArrayTwo(myArray, halfPath);
    }
 
    //Вивід
    cout << "\n\nВыводим сортированный массив : \n\n";
    for (int i = 0; i < sz; i++)
    {
        cout << " " << myArray[i];
    }
    
    cout << "\n\n";
    return 0;
}
 
void sortArrayOne(int arr[],int halfPath )
{
    int tmp = 0;
 
    for (int i = 0; i < halfPath; i++)
    {
        for (int j = i+1; j < halfPath; j++)
        {
            if (arr[i] > arr[j])
            {
                tmp = arr[i];
                arr[i] = arr[j];
                arr[j] = tmp;
            }
        }
    }
}
 
void sortArrayTwo(int arr[], int halfPath)
{
    int tmp = 0;
 
    for (int i = halfPath; i < sz - 1; i++)
    {
        for (int j = i + 1; j < sz; j++)
        {
            if (arr[i] < arr[j])
            {
                tmp = arr[i];
                arr[i] = arr[j];
                arr[j] = tmp;
            }
        }
    }
}
 
Текущее время: 22:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru