Вывести все числа, которые максимально часто встречаются в массиве и количество их повторений - C (СИ)
Формулировка задачи:
Дан одномерный массив из 100 случайных целых чисел в диапазоне от 5 до 25 включительно. Вывести все числа, которые максимально часто встречаются в массиве и количество их повто-рений. Подсчет количества повторений для числа оформить в виде функции.
Помогите плиз, в основном не понимаю как оформить функцию.
Решение задачи: «Вывести все числа, которые максимально часто встречаются в массиве и количество их повторений»
textual
Листинг программы
#include <stdlib.h>
#include <time.h>
#include <stdio.h>
void CalculateCounts(int *array, int *counter_array);
int main(int argc, char *argv[]) {
srand(time(NULL));
int *array = malloc(100 * sizeof(int));
int *counter_array = malloc(21 * sizeof(int));
int i;
for (i = 0; i < 100; ++i)
printf("%d ", array[i] = rand()%21 + 5);
printf("\n");
CalculateCounts(array, counter_array);
for (i = 0; i < 21; ++i)
printf("%d met %d time(s).\n", i+5, counter_array[i]);
free(counter_array);
free(array);
}
void CalculateCounts(int *array, int *counter_array) {
int i;
for (i = 0; i < 21; ++i)
counter_array[i] = 0;
for (i = 0; i < 100; ++i)
++counter_array[array[i]-5];
}
Объяснение кода листинга программы
Вывод чисел и подсчёт их повторений в массиве.
- Включение необходимых библиотек.
- Инициализация генератора случайных чисел.
- Выделение памяти под массив и счётчик.
- Заполнение массива случайными числами от 5 до 25.
- Вызов функции подсчёта количества повторений каждого числа.
- Вывод результатов подсчёта.
- Освобождение памяти.