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

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

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

Всем привет. Помогите доработать программу: Нужно написать рекурсивный метод для поиска максимального и минимального элемента массива и не рекурсивный.
class Program
    {
        static void Main(string[] args)
        {
 
            MyArr array = new MyArr();
            array.Print("Исходный массив:\t");
            Console.WriteLine("Минимальный элемент:\t" + array.GetMin());
            Console.WriteLine("Максимальный элемент:\t" + array.GetMax());
 
            Console.WriteLine("Минимальный элемент:\t" + array.ElementSearch());

            Console.ReadLine();
        }
    }

public  class MyArr
    {
        static int[] array;
        public MyArr()
        {
            array = new int[10];
            Random rnd = new Random();
            for (int i = 0; i < array.Length; i++)
                array[i] = rnd.Next(50);
        }
 
        public void Print(string msg)
        {
            Console.Write(msg + string.Join(" ", array) + "\n");
        }
 
       // Не реккурсивный метод поиска максимума
        public int GetMin()
        {
            int min = int.MaxValue;
            for (int i = 0; i < array.Length; i++)
            {
                if (array[i] < min)
                {
                    min = array[i];
                }
            }
            return min;
        }
 
        // Не реккурсивный метод поиска минимума
 
        public int GetMax()
        {
            int max = int.MinValue;
            for (int i = 0; i < array.Length; i++)
            {
                if (array[i] > max)
                {
                    max = array[i];
                }
            }
            return max;
        }
 
       // Реккурсивный метод поиска
 
        public  int ElementSearch(int[] Source, int Element)
        {
            if (Element + 1 == Source.Length)
            {
                return Source[Element];
            }
 
            else
            {
                Console.WriteLine("The lowest number is" + Source[(Element - 1)]);
 
                return Math.Min(Source[Element], ElementSearch(Source, Element + 1));
            }
        }

    }

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

textual
Листинг программы
void Main()
{
    int[] arr = {6,-3,14,12,0,1,45,22,-1,7};
    Console.WriteLine(FindElementNotRecurs(arr, (x,y) => x > y)); // Для максималки
    Console.WriteLine(FindElementNotRecurs(arr, (x,y) => x < y)); // Для минималки
}
 
static int FindElementNotRecurs(int[] arr, Func<int,int,bool> func)
{
    int item = arr[0];
    for(int i = 1; i <arr.Length; ++i)
        if(func(arr[i], item))
            item = arr[i];
    
    return item;
}

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


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

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

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