profile
Размещено 5 лет назад по предмету Информатика от monetkayahoo

Помогите с массивом c#
В одномерном массиве нужно удалить элементы, стоящие между максимальным отрицательным и минимальным положительным.

  1. Ответ на вопрос
    Ответ на вопрос дан archery
    private static int[] DeleteSomethingInArray(int[] a)
            {
                Debug.Assert(a.Length > 1 && a.Any(x => x > 0) && a.Any(x => x < 0));  // это просто проверка, можно удалить или закоментировать
                if (a.Length == 2)
                    return a;

                var max_i = -1;
                var min_i = -1;
                for (var i = 0; i < a.Length; i++)
                {
                    if (a[i] < 0 && (max_i < 0 || a[max_i] < a[i]))
                        max_i = i;
                    if (a[i] > 0 && (min_i < 0 || a[min_i] > a[i]))
                        min_i = i;
                }

                var result = new int[a.Length - Math.Abs(max_i - min_i) + 1];

                var j = 0;
                for (var i = 0; i < a.Length; i++)
                {
                    if (i <= Math.Min(max_i, min_i) || i >= Math.Max(max_i, min_i))
                        result[j++] = a[i];
                }

                return result;
            }

    На всякий случай в заголовках
    using System;
    using System.Diagnostics;
    using System.Linq;


    1. Ответ на вопрос
      Ответ на вопрос дан archery
      using System;
      using System.Collections.Generic;
      using System.Diagnostics;
      using System.Linq;

      internal static class Program
      {
      private static void Main()
      {
      try
      {
      var r = DeleteSomethingInArray(new[] {-2, -3, -1, 0, 0, 1, 2, 3});
      Console.WriteLine(r.Aggregate("", (s, x) => $"{s} {x}"));
      }
      catch(Exception e)
      {
      Console.WriteLine(e);
      }
      finally
      {
      Console.ReadLine();
      }
      }
    2. Ответ на вопрос
      Ответ на вопрос дан archery
      private static int[] DeleteSomethingInArray(int[] a)
      {
      Debug.Assert(a.Length > 1 && a.Any(x => x > 0) && a.Any(x => x < 0));
      if (a.Length == 2)
      return a;

      var max_i = -1;
      var min_i = -1;
      for (var i = 0; i < a.Length; i++)
      {
      if (a[i] < 0 && (max_i < 0 || a[max_i] < a[i]))
      max_i = i;
      if (a[i] > 0 && (min_i < 0 || a[min_i] > a[i]))
      min_i = i;
      }
    3. Ответ на вопрос
      Ответ на вопрос дан archery
      var result = new int[a.Length - Math.Abs(max_i - min_i) + 1];

      var j = 0;
      for (var i = 0; i < a.Length; i++)
      {
      if (i <= Math.Min(max_i, min_i) || i >= Math.Max(max_i, min_i))
      result[j++] = a[i];
      }

      return result;
      }
      }
    4. Ответ на вопрос
      Ответ на вопрос дан archery
      Вот полностью с оберткой. Просто оно все довольно массивное.
    5. Ответ на вопрос
      Ответ на вопрос дан monetkayahoo
      Спасибо!!
Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
tegysigalpa2012
Русский язык - 5 лет назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 6 класса 1. укажите личное местоимение: 1) некто 2) вас 3) ни с кем 4) собой 2. укажите относительное местоимение: 1) кто-либо 2) некоторый 3) кто 4) нам 3. укажите вопросительное местоимение: 1) кем-нибудь 2) кем 3) себе 4) никакой 4. укажите определительное местоимение: 1) наш 2) который 3) некий 4) каждый 5. укажите возвратное местоимение: 1) свой 2) чей 3) сам 4) себя 6. найдите указательное местоимение: 1) твой 2) какой 3) тот 4) их 7. найдите притяжательное местоимение: 1) самый 2) моего 3) иной 4) ничей 8. укажите неопределённое местоимение: 1) весь 2) какой-нибудь 3) любой 4) этот 9. укажите вопросительное местоимение: 1) сколько 2) кое-что 3) она 4) нами 10. в каком варианте ответа выделенное слово является притяжательным местоимением? 1) увидел их 2) её нет дома 3) её тетрадь 4) их не спросили

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.