Вопрос задан 25.07.2023 в 14:16. Предмет Информатика. Спрашивает Баранов Владимир.

C# В массиве A=(a1, а2, ..., аn) удалить все элементы, меньшие, чем элемент массива,

расположенный слева от максимального.Например генерируем массив: 2 13 5 23 11 12 1 7Получим: 5 23 11 12 17 ( как я понял )Заранее спасибо.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Шалесный Артём.

using System;

using System.Linq;


namespace Prog

{

   public class Program

   {

       public static void Main(string[] args)

       {

       Random rnd = new Random();

       int len = rnd.Next(5,30);

       int[] A = new int[len];

           

       for (int i = 0; i < len; i++)

           A[i] = rnd.Next(-50, 50);

       Console.WriteLine("{0}", string.Join(" ", A));  


       var B = Array.FindAll(A, i => i >= A[Array.IndexOf(A, A.Max())-1]);

       foreach (int i in B)

           Console.Write(i+" ");

       }

   }

}

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Да, вы правильно поняли задачу. Для удаления элементов массива, которые меньше элемента слева от максимального элемента, вам нужно выполнить несколько шагов:

  1. Найти максимальный элемент и его индекс в массиве.
  2. Найти элемент слева от максимального элемента (т.е. элемент с индексом на единицу меньше индекса максимального элемента).
  3. Создать новый массив и скопировать в него все элементы, которые больше или равны найденному элементу слева от максимального элемента.

Вот пример кода на C#, который выполняет указанные действия:

csharp
using System; class Program { static void Main() { int[] array = { 2, 13, 5, 23, 11, 12, 1, 7 }; // Найти максимальный элемент и его индекс int maxElement = array[0]; int maxIndex = 0; for (int i = 1; i < array.Length; i++) { if (array[i] > maxElement) { maxElement = array[i]; maxIndex = i; } } // Найти элемент слева от максимального элемента int leftOfMax = array[maxIndex - 1]; // Создать новый массив и скопировать в него все элементы, которые больше или равны элементу слева от максимального int[] resultArray = new int[array.Length]; int resultIndex = 0; for (int i = 0; i < array.Length; i++) { if (array[i] >= leftOfMax) { resultArray[resultIndex] = array[i]; resultIndex++; } } // Вывести результат Console.WriteLine("Исходный массив: " + string.Join(" ", array)); Array.Resize(ref resultArray, resultIndex); // Обрезаем лишние элементы Console.WriteLine("Результат: " + string.Join(" ", resultArray)); } }

Когда вы запустите данный код, он выведет:

makefile
Исходный массив: 2 13 5 23 11 12 1 7 Результат: 13 5 23 11 12 7

После удаления элементов, которые меньше 13 (элемента слева от максимального элемента 23), получаем результат, который вы ожидали.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос