.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();

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


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

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

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