Найти вторые минимальный и максимальный элементы заданного с клавиатуры вектора. Критика кода - 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);