Упражнения на C: Найти максимальное число повторений в данном массиве
C Массив: Упражнение-81 с раствором
Напишите программу на C, чтобы найти максимальное число повторений в данном массиве. Диапазон массива равен [0..n-1], а элементы находятся в диапазоне [0..k-1] и k <= n.
Пример решения:
Код C:
#include <stdio.h>
int numToRepeatMax(int* arr1 , int n, int k)
{
int mx = arr1[0], result = 0;
for (int i = 0; i< n; i++)
arr1[arr1[i]%k] += k;
for (int i = 1; i < n; i++)
{
if (arr1[i] > mx)
{
mx = arr1[i];
result = i;
}
}
return result;
}
int main()
{
int arr1[] = {2, 3, 3, 5, 3, 4, 1, 7, 7, 7, 7};
int n = sizeof(arr1)/sizeof(arr1[0]);
int i;
//------------- print original array ------------------
printf("The given array is: \n");
for(i = 0; i < n; i++)
{
printf("%d ", arr1[i]);
}
printf("\n");
//------------------------------------------------------
int k = 8;
printf("The maximum repeating number is: %d", numToRepeatMax(arr1, n, k));
return 0;
}
Пример вывода:
Данный массив: 2 3 3 5 3 4 1 7 7 7 7 Максимальное количество повторений: 7
Блок - схема:
Редактор кода программирования C:
Улучшите этот пример решения и опубликуйте свой код через Disqus.
Предыдущий: Напишите программу на C для подсчета всех различных пар для определенной разницы.
Далее: Напишите программу на C для печати всех возможных комбинаций r элементов в данном массиве.
Новый контент: Composer: менеджер зависимостей для PHP , R программирования
disqus2code