Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
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 элементов. мне нужно проверить правильно ли я написал программу. буду сверять все перестановки для этого
813 / 500 / 211
Регистрация: 19.01.2019
Сообщений: 1,196
16.08.2019, 03:49 0

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

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

Ответ

Я бы учитывал повторы.
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
void fill(int* begin, int* end) {
    for (int* it = begin; it != end; ++it) {
        *it = rand() % 10;
    }
}
 
template<typename T>
void print(T begin, T end) {
    for (T it = begin; it != end; ++it) {
        std::cout << *it << ' ';
    }
    std::cout << '\n';
}
 
void printNMaxNums1(int* begin, int* end, size_t nMax) {
    if (nMax == 0 || begin == end) {
        return;
    }
    std::multiset<int> ms;
    for (int* it = begin; it != end; ++it) {
        if (ms.size() < nMax) {
            ms.emplace(*it);
        }
        else if (*it > *ms.begin()) {
            ms.erase(ms.begin());
            ms.emplace(*it);
        }
    }
    print(ms.begin(), ms.end());
}
 
void printNMaxNums2(int* begin, int* end, size_t nMax) {
    std::sort(begin, end);
    print(end - nMax > begin ? end - nMax : begin, end);
}
 
 
int main()
{
    size_t size = 20;
    int* arr = new int[size];
    fill(arr, arr + size);
    print(arr, arr + size);
 
    size_t n;
    std::cout << "Search for [n] max numbers: ";
    std::cin >> n;
    //вариант без изменения исходного массива
    printNMaxNums1(arr, arr + size, n);
    //вариант с сортировкой
    printNMaxNums2(arr, arr + size, n);
 
    delete[] arr;
    return 0;
}


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

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

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

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

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

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

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

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

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

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

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