Обменять max и min

Задан массив из n целых чисел. Замените все наибольшие его элементы на наименьший, а наименьшие элементы на наибольший.

Входные данные

В первой строке записано число n (n ≤ 100). В следующей строке записано n целых чисел, каждое из которых по модулю не превосходит 100.

Выходные данные

Вывести обновленный массив.

Алгоритм решения задачи

  • Находим с помощью LINQ запросов минимальный и максимальный элементы списка;
  • Оператором Select производим замену максимального на минимальный и наоборот.

Решение

using System;
using System.Linq;

class Program
{
    static void Main(string[] args)
    {
        Console.ReadLine();
        var p = Array.ConvertAll(Console.ReadLine().Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries), s => int.Parse(s)).ToList();
        var min = p.Min();
        var max = p.Max();
        var res = p.Select(x => x == max ? min : x == min ? max : x);
        Console.WriteLine(string.Join(" ", res));
    }
}

Смотрите также: