В массиве целых чисел найти группу наименьшей длины, которая состоит из убывающей...

0 голосов
55 просмотров

В массиве целых чисел найти группу наименьшей длины, которая состоит из убывающей последовательности четных цифр написать код в с++


Информатика (12 баллов) | 55 просмотров
0

Из последовательности четных цифр или чисел?

Дан 1 ответ
0 голосов

#include
#include

using namespace std;

/* Searching of the minimal sequence of the even numbers. 
 * ARGUMENTS:
 *   - array of the numbers:
 *       int mainArray[];
 *   - number of elements in the array:
 *       int numOfEl;
 * RETURNS: None.
 */
void MinSeqOfNum(int mainArray[], int numOfEl)
{
  int
    minSeqLenght = numOfEl + 1, // минимальная длина последовательности
    seqLenght = 1,  // длина текущей последовательности
    numEnd = 0; // номер элемента, на котором заканчивается последовательность

  /* Цикл обработки массива */
  for (int i = 1; i < numOfEl; i++)
  {
    if (mainArray[i] < mainArray[i - 1] && mainArray[i] % 2 == 0 && mainArray[i - 1] % 2 == 0)
      seqLenght++;
    else
    {
      if (seqLenght < minSeqLenght && seqLenght != 1)
        minSeqLenght = seqLenght, numEnd = i;
      seqLenght = 1;
    }
  }

  /* Дополнительная проверка на случай, если минимальная последовательность    * закончилась на последнем элементе массива */
  if (seqLenght < minSeqLenght && seqLenght != 1)
    minSeqLenght = seqLenght, numEnd = numOfEl;
  if (minSeqLenght != numOfEl + 1)
  {
    cout << endl << endl << "Minimal sequence = " << minSeqLenght << endl << "Group: " << endl;<br>
    /* Вывод группы с минимальной длиной */
    for (int i = numEnd - minSeqLenght; i < numEnd; i++)
      cout << mainArray[i] << "; ";<br>  }
  else
    cout << endl << endl << "There is no such sequence exists..." << endl;<br>} /* End of the 'MinSeqOfNum' function */

/* Main program function.
 * ARGUMENTS: None.
 * RETURNS:
 *   (int) errors level for operation system.
 */
int main()
{
  srand(time(0));
  int
    numOfEl,     // кол-во элементов в массиве
    *mainArray;    // основной массив

  /* Инициализация кол-ва элементов массива */
  cout << "Input number of the elements: ";<br>  cin >> numOfEl;

  /* Выделение памяти под массив */
  if (numOfEl > 0)
    mainArray = new int[numOfEl];
  else
  {
    cout << "Error! Number of the elements cannot be negative!";<br>    return 0;
  }

  /* Инициализация основного массива случайными значениями */
  for (int i = 0; i < numOfEl; i++)
    mainArray[i] = rand() % 1000;

  /* Инициализация основного массива пользовательскими значениями */
  /*
    for (int i = 0; i < numOfEl; i++)
      cin >> mainArray[i];
  */

  /* Вывод массива */
  for (int i = 0; i < numOfEl; i++)
    cout << mainArray[i] << "; ";<br>
  /// Поиск последовательности убывающих четных чисел ///   MinSeqOfNum(mainArray, numOfEl);

  system("pause");
  return 0;
} /* End of the 'main' function */

(1.3k баллов)