Задан массив из 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));
}
}