// Пример массива с попарно различными элементами
int[] A = { -10, 5, 3, -7, 8, 2, -1, 9, 4, -3 };
// а) Наибольший элемент из отрицательных
int maxNegative = int.MinValue;
bool foundNegative = false;
// б) Наименьший элемент из положительных
int minPositive = int.MaxValue;
bool foundPositive = false;
// в) Второй по величине элемент
int[] sortedArray = (int[])A.Clone();
Array.Sort(sortedArray);
int secondLargest = 0;
for (int i = sortedArray.Length - 1; i >= 0; i--)
{
// Второй по величине — это предпоследний элемент в отсортированном массиве
if (i == sortedArray.Length - 2)
{
secondLargest = sortedArray[i];
break;
}
}
// Проходим по массиву для поиска максимума отрицательных и минимума положительных
foreach (var item in A)
{
if (item < 0)
{
foundNegative = true;
if (item > maxNegative)
{
maxNegative = item;
}
}
else if (item > 0)
{
foundPositive = true;
if (item < minPositive)
{
minPositive = item;
}
}
}
// Вывод результатов
if (foundNegative)
Console.WriteLine($"Наибольший отрицательный элемент: {maxNegative}");
else
Console.WriteLine("Нет отрицательных элементов.");
if (foundPositive)
Console.WriteLine($"Наименьший положительный элемент: {minPositive}");
else
Console.WriteLine("Нет положительных элементов.");
Console.WriteLine($"Второй по величине элемент: {secondLargest}");