static void Main(string[] args)
{ string a;
Console.WriteLine("Введите длину массива n");
int x = int.Parse(Console.ReadLine());
int[] array = new int[x];
Console.WriteLine("Вводите элементы массива длины n,после того как закончите вводить массив напишите end");
int i=0;
while ((a = Console.ReadLine()) != "end")
array[i++] = Convert.ToInt32(a);
for (int k = 0; k < i; k++)
Console.WriteLine(array[k]);
Console.WriteLine("Не обработанный массив");
foreach (int f in array)
{
Console.Write(f + " ");
}
Console.WriteLine();
int minIndex = 0, maxIndex = 0;
for (int f = 0; f < array.Length; f++)
{
if (array[f] > array[maxIndex])
{
maxIndex = f;
}
else if (array[f] < array[minIndex])
{
minIndex = f;
}
}
if (minIndex > maxIndex) (ПОЧЕМУ ЗДЕСЬ minIndex БОЛЬШЕ maxIndex)
{
Swap(ref minIndex, ref maxIndex);
}
for (int f = minIndex, j = maxIndex; f < j; f++, j--)
Swap(ref array[f], ref array[j]);
Console.WriteLine("Обработанный массив");
foreach (int f in array)
{
Условие задачи? Зачем оно тасует элементы между максимальным и минимальным значением? if (minIndex > maxIndex) (ПОЧЕМУ ЗДЕСЬ minIndex БОЛЬШЕ maxIndex) чтобы это - for (int f = minIndex, j = maxIndex; f < j; f++, j--) отработалось правильно видимо.
Он сохраняет в minIndex и maxIndex индексы для мин и макс значений. Если minIndex изначально больше maxIndex, то меняет местами так, что minIndex становится всегда меньше или равен maxIndex.