C#В массиве A=(a1, а2, ..., аn) удалить все элементы, меньшие, чем элемент массива, расположенный слева от максимального.Например генерируем массив: 2 13 5 23 11 12 1 7Получим: 5 23 11 12 17 ( как я понял )Заранее спасибо.

20 Авг 2019 в 08:46
329 +1
0
Ответы
1

Для решения данной задачи можно использовать следующий код на C#:

using System;
class Program
{
static void Main()
{
int[] A = { 2, 13, 5, 23, 11, 12, 1, 7 };
int maxIndex = 0;
for (int i = 0; i < A.Length; i++)
{
if (A[i] > A[maxIndex])
{
maxIndex = i;
}
}
int leftMax = A[0];
for (int i = 1; i < maxIndex; i++)
{
if (A[i] > leftMax)
{
leftMax = A[i];
}
}
for (int i = A.Length - 1; i >= 0; i--)
{
if (A[i] < leftMax)
{
A = A.Where((val, idx) => idx != i).ToArray();
}
else
{
leftMax = A[i];
}
}
foreach (var num in A)
{
Console.Write(num + " ");
}
}
}

Этот код найдет максимальный элемент в массиве A, затем найдет элемент слева от него. После этого пройдется по массиву справа налево и удаляет элементы, которые меньше, чем leftMax. В результате на экране будут выведены только нужные элементы.

20 Апр 2024 в 13:30
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир