Переставить в обратном порядке элементы массива его минимальным и максимальным элементами - C#

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

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

Дан массив размера N. Переставить в обратном порядке элементы массива, расположенные между его минимальным и максимальным элементами, включая 2 минимальный и максимальный элементы.
        static void Main(string[] args)
        {
            int[] array = { 5, 10, 7, 8, 4, 2, 4, 1, 1, 3 };
            int Min = int.MaxValue, minIndex = -1, Max = int.MinValue, maxIndex = -1;
 
            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;
                }
            }
 
            Console.WriteLine("Исходный массив: \t{0}", string.Join(", ", array));
 
            int begin = Math.Min(minIndex, maxIndex) + 1, end = Math.Max(minIndex, maxIndex) - 1;
            for (; begin < end; begin++, end--)
            {
                int tmp = array[begin];
                array[begin] = array[end];
                array[end] = tmp;
            }
            Console.WriteLine("Обработанный массив: \t{0}", string.Join(", ", array));
            Console.Read();
Как переделать в мой вариант?
Ввод с клавиатуры! У меня не получается под него правильно переделать!

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

textual
Листинг программы
using System;
class demo
{
    static void Main()
    {
        Console.Write("Длина массива : ");
        int max = int.MinValue, min = int.MaxValue;
        int minI=0, maxI=0,val=0;
        int[] arr = new int[Int32.Parse(Console.ReadLine())];
        for (int i = 0; i < arr.Length; i++ )
        {
            Console.Write("элемент #{0} >> ",i+1);
            arr[i] = Int32.Parse(Console.ReadLine());
        }
        Console.WriteLine("Оригинальный массив : ");
        foreach (int n in arr)
            Console.Write(n+" ");
        for (int i = 0; i < arr.Length; i++ )
        {
            if(arr[i] > max)
            {
                max = arr[i];
                maxI = i;
            }
             if(arr[i] < min)
            {
                min = arr[i];
                minI = i;
            }
        }
        Console.WriteLine("\nПосле модификации : ");
        for (int i = 0, l = Math.Min(minI, maxI), r = val=Math.Max(minI, maxI); i < arr.Length; i++)
        {
            if (i >= l && i <= r)
                Console.Write(arr[val--] + " ");
            else Console.Write(arr[i] + " ");
        }
        Console.WriteLine();
        Console.ReadKey(true);
    }
}

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

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