как найти центральный элемент?

Необходимо определить произведение элементов массива, расположенных между максимальным и центральным элементами массива (предполагается что число элементов - нечётное и максимальный единственный. Если по какой-либо причине вычислить произведение не удается, выдать об этом сообщение с указанием причины. Я написал небольшой код, но он находит произведение максимального и минимального.. как найти центральный элемент?

class smth2
 {
     public void Main2()
     {
         int[] array = new int[10];
         Random rand = new Random();
         // заполняем массив случайными значениями
         for (int i = 0; i < array.Length; i++)
             array[i] = rand.Next(0, 10);
         // 
         int max = array[0], min = array[0];
         int maxIndex = 0, minIndex = 0;
         // Находим максимальный и минимальный элемент вместе с индекчом
         for (int i = 0; i < array.Length; i++)
         {
             if (array[i] >= max) { max = array[i]; maxIndex = i; }
             if (array[i] <= min) { min = array[i]; minIndex = i; }
         }
         int kol = 0;
         foreach (var item in array)
         {
             Console.WriteLine("{0}      Индекс: {1}", item.ToString(), kol);
             kol++;
         }
         Console.WriteLine("\nmax is {0} with index {1} and min is {2} with index {3}", max, maxIndex, min, minIndex);

         // произведение
         double value = 1;
         for (int i = 0; i < array.Length; i++)
         {
             if (minIndex < maxIndex)
             {
                 if (i > minIndex && i < maxIndex)
                 {
                     value = value * array[i];
                 }
             }
             else if (maxIndex < minIndex)
             {
                 if (i < minIndex && i > maxIndex)
                 {
                     value = value * array[i];
                 }
             }
         }
         Console.WriteLine("Произведение равно {0}", value);
         Console.ReadLine();
     }
 }```

Ответы (2 шт):

Автор решения: Kunoichi

Находим значение "центрального" элемента:

var mV = array.[int.Parse(Math.Ceiling(array.Length / 2))]

Находим значение максимального:

var maxV = array.Max();

Находим произведение центрального и минимального:

var resut = mV * maxV;
→ Ссылка
Автор решения: Frehzy
    int[] arr = new int[5] { 1, 10, 4, 6, 11 };

    if (arr.Length % 2 == 0)
        throw new ArgumentException("Массав должен иметь нечётное количество элементов");

    int averageValue = arr[arr.Length / 2];
    int averageIndex = Array.IndexOf(arr, averageValue);
    var maxValue = arr.Max();
    int maxIndex = Array.IndexOf(arr, maxValue);

    try
    {
        var result = averageIndex <= maxIndex
            ? arr.Skip(averageIndex).Take(maxIndex - averageIndex + 1).Aggregate((x, y) => x * y)
            : arr.Skip(maxIndex).Take(averageIndex - maxIndex + 1).Aggregate((x, y) => x * y);

        Console.WriteLine(result);
    }
    catch (Exception ex)
    { 
        Console.WriteLine(ex.ToString());
    }

    Console.ReadKey();
→ Ссылка