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