Упражнения на C: Вернуть самый большой диапазон, найденный в крайнем левом и правом появлении того же значения в данном массиве
C Array: Упражнение-98 с решением
Напишите программу на C, чтобы она возвращала наибольший диапазон, найденный в крайнем левом и крайнем правом появлениях одного и того же значения (значения включаются) в данном массиве.
Пример решения:
Код C:
#include<stdio.h>
int maxSpan(int arr1[],int n)
{
int l=n;
if (l > 0)
{
int maxSpanCtr = 1;
for (int i = 0; i < l; i++)
for (int j = l - 1; j > i; j--)
if (arr1[j] == arr1[i])
{
int count = (j - i) + 1;
if (count > maxSpanCtr) maxSpanCtr = count;
break;
}
return maxSpanCtr;
}
else return 0;
}
int main()
{
int arr1[] = {17, 42, 19, 7, 27, 24, 17, 54, 73};
int arr_size = sizeof(arr1)/sizeof(arr1[0]);
int i = 0;
//------------- print original array ------------------
printf("The given array is: \n");
for(i = 0; i < arr_size; i++)
{
printf("%d ", arr1[i]);
}
printf("\n");
//-----------------------------------------------------------
printf("The span between the same values in the array is: %d", maxSpan(arr1,arr_size));
return 0;
}
Пример вывода:
Данный массив: 17 42 19 7 27 24 17 54 73 Интервал между одинаковыми значениями в массиве: 7
Блок - схема:
Редактор кода программирования C:
Улучшите этот пример решения и опубликуйте свой код через Disqus.
Previous: написать программу на C, чтобы найти индекс первого пикового элемента в данном массиве.
Далее: напишите программу на C, чтобы она возвращала true, если массив может быть разбит в такой позиции, что сумма левой части расщепления равна сумме правой стороны.
Новый контент: Composer: менеджер зависимостей для PHP , R программирования
disqus2code