Задача №8962 Крайний самый большой

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

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

В первой строке записано натуральное число n. В следующей строке записаны n целых чисел. Все числа по модулю не превышают 100.

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

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

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

  • Для определения максимального используем оператор меньше или равно;
  • Запоминаем не только значение максимального, но и его индекс;
  • Производим обмен элементов.

Решение

using System;
class Program
{
    static void Main(string[] args)
    {
        var n = int.Parse(Console.ReadLine());
        var array = Array.ConvertAll(Console.ReadLine().Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries),
            s => long.Parse(s));

        var max = array[0];
        var maxIndex = 0;
        for (int i = 1; i < n; i++)
        {
            if (max <= array[i])
            {
                max = array[i];
                maxIndex = i;
            }
        }

        var temp = array[n - 1];
        array[n - 1] = array[maxIndex];
        array[maxIndex] = temp;

        Console.WriteLine(string.Join(" ", array));
    }
}

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