Проверить, расположен ли максимальный нечетный элемент в первой половине массива - C (СИ)

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

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

Дан одномерный массив А неупорядоченных целых чисел, состоящий из 2N элементов. Если максимум среди не¬четных чисел расположен в первой половине массива, то присвоить переменной f значение 1, иначе — присвоить f значение 0. Вывести на экран значение f или сообщение «Нет», если нечетных чисел в массиве нет.

Решение задачи: «Проверить, расположен ли максимальный нечетный элемент в первой половине массива»

textual
Листинг программы
void Tester( int *a, int n)
{
  int i, j, max[2], t[2], f ;
 
  for( i = 0; i < 2; i++)
  {
    max[i] = 2;
    t[i] = 0;
  }
  
  for( j = 0; j < 2; j++)
    for( i = n * j; i < n * ( j + 1); i++)
      if( a[i] % 2 !=0)
      {
        if(t[j] == 0)
        {
          max[j] = a[i];
          t[j] = 1;
        }
        if(max[j] < a[i])
          max[j] = a[i];
      }
 
  if( t[0] == 0 && t[1] == 0)
    printf("There's no any");
  else
  {
    if( max[0] > max[1] || t[1] == 0) 
      f = 1;
    else
      f = 0;
    printf("%i", f);
  }
}

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

  1. В функции Tester(int *a, int n) представлен код для проверки расположения максимального нечетного элемента в первой половине массива.
  2. В первой итерации двух вложенных циклов перебираются элементы массива от начала до n/2 и от n/2 до n соответственно.
  3. Переменная i используется как индекс внешнего цикла, а переменная j - как индекс внутреннего цикла.
  4. Если элемент массива a[i] является нечетным, то проверяется, является ли он максимальным среди нечетных элементов в первой половине массива.
  5. Если элемент a[i] больше максимального найденного ранее нечетного элемента, то он становится новым максимальным нечетным элементом.
  6. Переменная t[j] используется для отслеживания того, найден ли уже максимальный нечетный элемент в первой половине массива.
  7. Если в первой половине массива не найдено ни одного нечетного элемента, то выводится сообщение There's no any.
  8. В противном случае выводится 1, если максимальный нечетный элемент находится в первой половине массива, и 0 в противном случае.

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


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

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

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