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

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

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

Дан массив размера N. Переставить в обратном порядке элементы массива, расположенные между его минимальным и максимальным элементами, включая 2 минимальный и максимальный элементы.
Листинг программы
  1. static void Main(string[] args)
  2. {
  3. int[] array = { 5, 10, 7, 8, 4, 2, 4, 1, 1, 3 };
  4. int Min = int.MaxValue, minIndex = -1, Max = int.MinValue, maxIndex = -1;
  5. for (int i = 0; i < array.Length; i++)
  6. {
  7. if (array[i] > Max)
  8. {
  9. Max = array[i];
  10. maxIndex = i;
  11. }
  12. if (array[i] < Min)
  13. {
  14. Min = array[i];
  15. minIndex = i;
  16. }
  17. }
  18. Console.WriteLine("Исходный массив: \t{0}", string.Join(", ", array));
  19. int begin = Math.Min(minIndex, maxIndex) + 1, end = Math.Max(minIndex, maxIndex) - 1;
  20. for (; begin < end; begin++, end--)
  21. {
  22. int tmp = array[begin];
  23. array[begin] = array[end];
  24. array[end] = tmp;
  25. }
  26. Console.WriteLine("Обработанный массив: \t{0}", string.Join(", ", array));
  27. Console.Read();
Как переделать в мой вариант?
Ввод с клавиатуры! У меня не получается под него правильно переделать!

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

textual
Листинг программы
  1. using System;
  2. class demo
  3. {
  4.     static void Main()
  5.     {
  6.         Console.Write("Длина массива : ");
  7.         int max = int.MinValue, min = int.MaxValue;
  8.         int minI=0, maxI=0,val=0;
  9.         int[] arr = new int[Int32.Parse(Console.ReadLine())];
  10.         for (int i = 0; i < arr.Length; i++ )
  11.         {
  12.             Console.Write("элемент #{0} >> ",i+1);
  13.             arr[i] = Int32.Parse(Console.ReadLine());
  14.         }
  15.         Console.WriteLine("Оригинальный массив : ");
  16.         foreach (int n in arr)
  17.             Console.Write(n+" ");
  18.         for (int i = 0; i < arr.Length; i++ )
  19.         {
  20.             if(arr[i] > max)
  21.             {
  22.                 max = arr[i];
  23.                 maxI = i;
  24.             }
  25.              if(arr[i] < min)
  26.             {
  27.                 min = arr[i];
  28.                 minI = i;
  29.             }
  30.         }
  31.         Console.WriteLine("\nПосле модификации : ");
  32.         for (int i = 0, l = Math.Min(minI, maxI), r = val=Math.Max(minI, maxI); i < arr.Length; i++)
  33.         {
  34.             if (i >= l && i <= r)
  35.                 Console.Write(arr[val--] + " ");
  36.             else Console.Write(arr[i] + " ");
  37.         }
  38.         Console.WriteLine();
  39.         Console.ReadKey(true);
  40.     }
  41. }

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


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

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

13   голосов , оценка 3.769 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы