Найти в массиве наибольший "ровный" участок - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Задан упорядоченный массив

A [n]

. Необходимо найти в этом массиве наибольший "равнинній" участок, то есть определить такое число

p

, что в массиве последовательности из из равных элементов нет последовательности

р+1

равных элементов.

Решение задачи: «Найти в массиве наибольший "ровный" участок»

textual
Листинг программы
#include <stdio.h>
 
int MaxPeq(int *A, int n)
{
    int m,i,p;
    m=0;
    p=1;
 
    for (i=1; i<n; i++)
        if (A[i]==A[i-1])
        {
            p++;
            if (p > m) m=p;
        }
        else
            p=1;
    return m;
}
 
 
int main(int argc, char* argv[])
{
    int Arr[12]={1,3,4,3,3,6,6,6,6,1,2,2};
    printf("%d\n",MaxPeq(Arr,12));
    return 0;
}

Объяснение кода листинга программы

  1. В функции MaxPeq происходит поиск наибольшего ровного участка в массиве A длиной n.
  2. Переменная m инициализируется значением 0, она будет использоваться для хранения текущего размера наибольшего ровного участка.
  3. Переменная p инициализируется значением 1, она будет использоваться для хранения количества элементов в текущем ровном участке.
  4. В цикле for проходим по всем элементам массива A кроме первого и последнего (i<n).
  5. Если текущий элемент A[i] равен предыдущему A[i-1], то увеличиваем значение переменной p на 1.
  6. Если значение переменной p больше текущего значения переменной m, то обновляем значение переменной m значением p.
  7. Если текущий элемент не равен предыдущему, то сбрасываем значение переменной p в 1.
  8. Возвращаем значение переменной m из функции.
  9. В функции main создаем массив Arr размером 12 и заполняем его значениями для примера.
  10. Вызываем функцию MaxPeq с аргументами Arr и 12, выводим результат на экран.
  11. Возвращаем 0 из функции main, чтобы указать, что программа успешно завершилась.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.5 из 5
Похожие ответы