.NET 2.x Элементы находящиеся между максимальным и минимальным элементами массива занести в другой массив - C#
Формулировка задачи:
Ввести одномерный массив с клавиатуры и элементы находящиеся между максимальным и минимальным элементами массива занести в другой массив B и вывести его элементы на экран.
var I, N: Integer; iMax, iMin: Integer; A: array[1..10] of real; begin write('Введите количество элементов: '); readLN(N); writeLN('Введите элементы массива: '); for I := 1 TO N DO read(A[I]); iMax := 1; for I := 1 TO N DO if A[I] > A[iMax] then iMax := I; iMin := 1; for I := 1 to N do if A[I] < A[iMin] then iMin := I; WriteLn('Между максимальным и минимальным находятся:'); for I := Min(iMin, iMax)+1 to Max(iMin, iMax)-1 do Write(A[I], ' '); WriteLn; end.
подскажите как создать массив с элементами входящим в промежуток от min и max
using System; namespace mass { class MainClass { public static void Main(string[] args) { 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("press any key...\n"); Console.ReadLine(); } } }
доработал вроде бы должно работать
using System; namespace mass { class MainClass { public static void Main(string[] args) { 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Элементы между min и max : "); 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--] + " "); Console.Write(arr[i] + " "); } Console.WriteLine("press any key...\n"); Console.ReadLine(); } } }
Решение задачи: «.NET 2.x Элементы находящиеся между максимальным и минимальным элементами массива занести в другой массив»
textual
Листинг программы
int[] arr = { 1,2,9,4,5,6,0 }; int Max = arr.Max(); int Min = arr.Min(); Max = (from u in (arr.Select((e, i) => new { Value = e, Index = i }))//находим индекс максимального where u.Value == Max select u.Index).Single(); Min = (from u in (arr.Select((e, i) => new { Value = e, Index = i }))//находим индекс минимального where u.Value == Min select u.Index).Single(); if (Min > Max) { int k = Min; Min = Max; Max = k; }; //расставляем индексы по возрастанию int[] Res = arr.Skip(Min+1).Take(Max - Min -1).ToArray();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д