Найти вторые минимальный и максимальный элементы заданного с клавиатуры вектора. Критика кода - C#

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

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

Здравствуйте. Снова я и снова критика кода)

Найти вторые минимальный и максимальный элементы заданного с клавиатуры целочисленного вектора V длиной n элементов.

class Program
    {
        //2.Найти вторые минимальный и максимальный элементы заданного с клавиатуры целочисленного вектора V длиной n элементов.
        static void Main()
        {
            int n;
            int[] nums;
 
            do
                Console.WriteLine("введите кол-во элементов:");
            while(!int.TryParse(Console.ReadLine(), out n) || n < 1);
 
            FillArray(n, out nums);
 
            Console.WriteLine("получившийся массив:");
            OutputArray(nums);
 
            GetSecondMaxAndMinValues(nums);
 
            Console.ReadLine();
        }
 
        static void FillArray(int len, out int[] nums)
        {
            nums = new int[len];
 
            for (int i = 0; i < len; i++)
            {
                Console.WriteLine("введите {0}-e число:", i + 1);
                try
                {
                    nums[i] = int.Parse(Console.ReadLine());
                }
                catch
                {
                    Console.WriteLine("массив должен состоять только из целых чисел! Попробуйте в следующий раз");
                    Console.ReadKey();
                    Environment.Exit(0);
                }
            }
        }
 
        static void OutputArray(int[] array)
        {
            for (int i = 0; i < array.Length; i++)
                Console.Write("{0} ", array[i]);
        }
 
        static void GetSecondMaxAndMinValues(int[] array)
        {
            int max = array[0];
            int min = array[0];
 
            for (int i = 0; i < array.Length; i++)
            {
                if (array[i] > max)
                    max = array[i];
                if (array[i] < min)
                    min = array[i];
            }
 
            Console.WriteLine("firstMax = {0}, firstMin = {1}", max, min);
 
            List<int> list = new List<int>(array);
            for (int i = 0; i < array.Length; i++)
            {
                if (array[i] == max || array[i] == min)
                    list.Remove(array[i]);
            }
 
            array = list.ToArray();
            max = array[0];
            min = array[0];
            for (int i = 0; i < array.Length; i++)
            {
                if (array[i] > max)
                    max = array[i];
                if (array[i] < min)
                    min = array[i];
            }
 
            Console.WriteLine("secondMax = {0}, secondMin = {1}", max, min);
        }
    }

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

textual
Листинг программы
string line = "";
while ((line = Console.ReadLine()) != "$")
    Console.WriteLine(line);

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


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

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

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