В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География

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

Показать ответ
Ответ:
Ahdrey0607
Ahdrey0607
06.10.2020 13:41
#include <iostream>
#include <ctime>

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;

    /* Вывод группы с минимальной длиной */
    for (int i = numEnd - minSeqLenght; i < numEnd; i++)
      cout << mainArray[i] << "; ";
  }
  else
    cout << endl << endl << "There is no such sequence exists..." << endl;
} /* 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: ";
  cin >> numOfEl;

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

  /// Поиск последовательности убывающих четных чисел ///   MinSeqOfNum(mainArray, numOfEl);

  system("pause");
  return 0;
} /* End of the 'main' function */
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота