Упражнения на C: Найти максимум для каждого и каждого подходящего подмассива размера k из заданного массива
C Массив: Упражнение-94 с раствором
Напишите программу на C, чтобы найти максимальное значение для каждого и каждого подходящего подмассива размера k из заданного массива.
Пример решения:
Код C:
#include<stdio.h>
void contSubArr (int arr1[], int x, int k)
{
for (int i = x; i <= x+(k-1); i++)
{
printf("%d ", arr1[i]);
}
}
void findMaxFrom (int arr1[], int n, int k)
{
int j, maxofn,m=0;
for (int i = 0; i <= n-k; i++)
{
maxofn = arr1[i];
for (j = 1; j < k; j++)
{
if (arr1[i+j] > maxofn)
maxofn = arr1[i+j];
}
contSubArr(arr1, m, k);
printf("----> %d \n", maxofn);
m++;
}
}
int main()
{
int arr1[] = {1, 3, 6, 21, 4, 9, 12, 3, 16, 10};
int n = sizeof(arr1)/sizeof(arr1[0]);
int i,k = 4;
//------------- print original array ------------------
printf("The given array is: \n");
for(i = 0; i < n; i++)
{
printf("%d ", arr1[i]);
}
printf("\n");
//-----------------------------------------------------------
printf("The length of each subarray is: %d\n",k);
printf("The contigious subarray of length %d and their maximum value are: \n",k);
findMaxFrom(arr1, n, k);
return 0;
}
Пример вывода:
Данный массив: 1 3 6 21 4 9 12 3 16 10 Длина каждого подмассива составляет: 4 Достоверные подмассивы длины 4 и их максимальное значение: 1 3 6 21 ----> 21 3 6 21 4 ----> 21 6 21 4 9 ----> 21 21 4 9 12 ----> 21 4 9 12 3 ----> 12 9 12 3 16 ----> 16 12 3 16 10 ----> 16
Блок - схема:
Редактор кода программирования C:
Улучшите этот пример решения и опубликуйте свой код через Disqus.
Предыдущий: Напишите программу на C, чтобы переставить положительные и отрицательные числа поочередно в данном массиве.
Далее: Напишите программу на C для разделения 0 и 1 в массиве.
Новый контент: Composer: менеджер зависимостей для PHP , R программирования
disqus2code