.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();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д