C/C++

Найти наиболее часто встречаемое число в массиве на C++, используя только функции

Даны значения n элементов целочисленного массива. Найти наиболее часто встречающееся число; если таковых будет несколько, то указать их все.
 #include  
#include
#include
#include
#include
#include

using namespace std;

template
class Output {
public:
Output(Type value) : value(value) {}
private:
Type value;
friend ostream& operator
Игорь Клубков
Игорь Клубков
85 750
Лучший ответ
Можно использовать следующий алгоритм:

Объявить массив целых чисел, ввести размер массива и значения элементов массива.
Объявить переменную, которая будет хранить частоту встречаемости элементов.
Объявить цикл, который будет итерироваться по всем элементам массива.
Внутри цикла проверить, существует ли элемент с таким же значением в массиве. Если существует, то увеличить значение частоты встречаемости этого элемента.
После завершения цикла найти элементы с максимальной частотой встречаемости.
#include <iostream>
#include <algorithm>

using namespace std;

int main()
{
// Объявляем массив целых чисел и переменную для хранения размера массива
int a[100], n;

Copy code
// Вводим размер массива
cout << "Vvedite kol-vo elementov: ";
cin >> n;

// Вводим элементы массива
cout << "Vvedite elementy massiva: ";
for (int i = 0; i < n; i++)
cin >> a[i];

// Объявляем массив, который будет хранить частоту встречаемости элементов
int freq[100] = { 0 };

// Обходим все элементы массива
for (int i = 0; i < n; i++)
{
// Проверяем, существует ли элемент с таким же значением в массиве
int count = count(a, a + n, a[i]);

// Если элемент существует, то увеличиваем значение частоты встречаемости этого элемента
freq[i] = count;
}

// Находим максимальное значение частоты встречаемости элементов
int max_freq = *max_element(freq, freq + n);
// Выводим элементы с максимальной частотой встречаемости
cout << "Naibolee chasto vstrechayuschiesya chisla: ";
for (int i = 0; i < n; i++)
{
if (freq[i] == max_freq)
cout << a[i] << " ";
}

return 0;
}
Николай Неуймин Ругается на эту часть кода пишет "результатом вычисления фрагмента не является функция, принимающая 3 аргументов"

// Обходим все элементы массива
for (int i = 0; i < n; i++)
{
// Проверяем, существует ли элемент с таким же значением в массиве
int count = count(a, a + n, a[i]);

// Если элемент существует, то увеличиваем значение частоты встречаемости этого элемента
freq[i] = count;
}
#include <iostream>
#include <unordered_map>

using namespace std;

int main()
{
// Читаем размер массива
int n;
cin >> n;

// Создаем контейнер для хранения пар "ключ-значение"
unordered_map<int, int> counts;

// Читаем массив и подсчитываем количество вхождений элементов
for (int i = 0; i < n; i++) {
int x;
cin >> x;
counts[x]++;
}

// Ищем элемент с максимальным количеством вхождений
int max_count = 0;
for (const auto& p : counts) {
if (p.second > max_count) {
max_count = p.second;
}
}

// Выводим элементы с максимальным количеством вхождений
for (const auto& p : counts) {
if (p.second == max_count) {
cout << p.first << " ";
}
}

return 0;
}


Я не уверен что это то что нужно