Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как создать многопоточность Здравствуйте, Пытаюсь хотя бы на самом простом уровне понять, как работает std thread, для этого сделал вот такую простенькую задачку: То есть, имеется одномерный вектор с числами. Нужно... https://www.cyberforum.ru/ cpp-beginners/ thread2491474.html C++ Оператор new работает не так как пишут и рассказывают в интернете
Добрый день! Недавно начал изучать с++, но напоролся на что-то не понятное. Все пишут что объявление динамического массива "type *name_arr = new type", но у меня выдает перегрузку. Можете пожалуйста...
C++ Как работает объект istream? https://www.cyberforum.ru/ cpp-beginners/ thread2491469.html
Есть кусок кода istream & operator>>(istream & is, String & st) { char temp; is.get(temp, String::CINLIM); if (is) st = temp; while (is && is.get() != '\n') continue;
C++ Рекурсия #include <iostream> #include <random> #include <time.h> #include <conio.h> #include <Windows.h> using namespace std; template <typename T> https://www.cyberforum.ru/ cpp-beginners/ thread2491460.html
C++ Сжатие исходной последовательности символов
Не могу решить задачу. Помогите, пожалуйста. Разработать и испытать функцию “сжатия” исходной последовательности символов: каждая подпоследовательность, состоящая из нескольких вхождений одного и...
C++ Проблема с картой в Mario Делаю копию Марио на C++ SFML!!! Но когда добавляю в Map.h новую строку, чтобы увеличить высоту карты, программа вылетает main.cpp: #include <SFML/Graphics.hpp> #include "View.h" #include... https://www.cyberforum.ru/ cpp-beginners/ thread2491436.html
C++ Шифрование и дешифровка файла с AES 256 https://www.cyberforum.ru/ cpp-beginners/ thread2491429.html
Доброго времени суток, дорогие телепаты. Заранее оговорюсь: я в криптографии совсем зеленый, поэтому сильно не пинайте. Существует ли простой способ шифровки-расшифровки архива (в частности .rar или...
C++ Подключение заголовочных файлов
Как работает подключение заголовчных файлов в Линукс во время компиляции? К примеру имею свой собственный заголовочный файл test.h и подключил его в main.cpp #include "test.h", теперь чтобы...
C++ Повторное подключение хэдеров https://www.cyberforum.ru/ cpp-beginners/ thread2491411.html
Здравствуйте! Тяжело объяснить проблему, но я попробую. Например, в главном исходном файле я подключаю iostream для ввода/вывода. Далее создаю свой хэдер: пишу определение класса, пишу в нём...
C++ Ошибка в редакторе кода https://www.cyberforum.ru/ cpp-beginners/ thread2491403.html
В VS Code при такой инициализации массива char filename = "array created"; выдает такую ошибку : "a value of type "const char " cannot be used to initialize an entity of type "char "",при том...
Локальное Соревнование! По защите информации C++
Добрый день уважаемые пользователи форму! В данной теме хочу предложить провести локальное соревнование С целью оценки и прокачки своих навыков, и просто приятным провождением времени) Две...
C++ Перестановки без повторений https://www.cyberforum.ru/ cpp-beginners/ thread2491327.html
привет помогите пожалуйста найти файлик в котором бы были все перестановки из 5 элементов. мне нужно проверить правильно ли я написал программу. буду сверять все перестановки для этого
567 / 406 / 132
Регистрация: 22.11.2017
Сообщений: 1,054
16.08.2019, 13:02 0

Написать процедуру, которая ищет первых N максимальных чисел из массива - C++ - Ответ 13774128

16.08.2019, 13:02. Показов 2106. Ответов 13
Метки (Все метки)

Ответ

Цитата Сообщение от Rudman132 Посмотреть сообщение
А можно без алгоритма и указателей?
Можно. Вот без алгоритма и указателей.
Кликните здесь для просмотра всего текста

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
#include <iostream> 
#include <random>
#include <vector>
#include <optional>
 
using namespace std;
 
//Заполнение массива
template<size_t n>
void Zap_mas(int (&arr)[n])
{
    random_device rd;
    mt19937 g{ rd() };
    uniform_int_distribution<> dist(10, 59);
    auto gen = [&g, &dist]() { return dist(g); };
    for (auto& value : arr)
        value = gen();
}
 
//Вывод массива
template<size_t n>
ostream& operator<<(ostream& os, int(&arr)[n])
{
    for (auto value : arr)
        os << value << " ";
    return os;
}
 
//Поиск первых N макс. чисел
template<size_t n>
void Max_numb(int(&arr)[n], int k)
{
    if (k >= n)
        throw out_of_range("k прибывает вне границ массива");
    vector<optional<int>> m(n);
    copy(arr, arr + n, begin(m));
    for (size_t idx0 = 0u; idx0 < k; ++idx0)
    {
        size_t max_idx = 0u, idx = 0u;
        for (const auto& opt : m)
        {
            if (!!opt && *opt > *(m[max_idx]))
            {
                max_idx = idx;
            }
            ++idx;
        }
        cout << *(m[max_idx]) << " ";
        *(m[max_idx]) = {};
    }
    cout << "\n";
}
 
int main()
{
    setlocale(LC_ALL, "rus");
 
    const size_t s = 20u;
    int arr[s];
    Zap_mas(arr);
    cout << "Массив: ";
    cout << arr;
 
    cout << "\nВведите число N: ";
    size_t numb = 0u;
    cin >> numb;
    cout << "\nПервые N чисел: ";
    try
    {
        Max_numb(arr, numb);
    }
    catch (const out_of_range& oor)
    {
        cout << "Ошибка " << oor.what() << "\n";
        return 1;
    }
    cout << "\n";
 
    system("pause");
    return 0;
}

Звёздочки обозначают НЕ указатели, а получение значения из экземпляров optional < T >.

Вернуться к обсуждению:
Написать процедуру, которая ищет первых N максимальных чисел из массива C++
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.08.2019, 13:02
Готовые ответы и решения:

Написать процедуру, которая ищет первых N максимальных чисел из массива
Написать процедуру, которая ищет первых N максимальных чисел из массива. Объясню: надо написать...

Написать процедуру и функцию, которая ищет количество положительных чисел в массиве
11) Создать приложение. Написать процедуру и функцию, которая подсчитывает количество положительных...

Разработайте программу, которая содержит процедуру Sum(N,S), которая находит сумму N первых натуральных и найти сумму первых 10,20 чисел
PASCAL Помогите пожалуйста! Решите, заранее спасибо! Разработайте программу, которая содержит...

Написать процедуру нахождения количества максимальных элеметнов массива
Написать процедуру нахождения кол-ва максимальных элеметнов массива

13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.08.2019, 13:02

Cоздать процедуру, которая ищет слово в массиве и выводит набор индексов массива совпадающих элементов
Имеется массив слов.Необходимо создать процедуру,которая ищет в массиве, переданное в параметре...

Составить процедуру, которая выводит квадраты первых 40 чисел в виде таблицы
Составить процедуру, которая выводит квадраты первых 40 чисел в виде таблицы (в каждой строке 4...

Шаблоны: написать функцию, которая ищет произведение среди двух, трех и четырех целых и действительных чисел
Написать функцию dob, которая ищет произведение среди двух, трех и четырех целых и действительных...

С помощью оператора while написать программу, которая ищет произведение 10 произвольно введенных чисел и выводить его на печать
С помощью оператора while написать программу, которая ищет произведение 10 произвольно введенных...

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