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

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

Задать свой вопрос
Никита Ваткин
в массиве элементы не удаляются
Антон Ляптиков
массивы под это не заточены
Ульяна Худолеева
проще всего создать новый массив в котором нет негодных частей
Дарья Рузанкова
либо работать со перечнем List<>
Володя Почнирибко
так что конкретно надобно?
Анатолий
я не знаю, на ваше усмотрение
1 ответ
Private static int[] DeleteSomethingInArray(int[] a)
       
            Debug.Assert(a.Length gt; 1 amp;amp; a.Any(x =gt; x gt; 0) amp;amp; a.Any(x =gt; x lt; 0));  // это просто проверка, можно удалить или закоментировать
            if (a.Length == 2)
                return a;

            var max_i = -1;
            var min_i = -1;
            for (var i = 0; i lt; a.Length; i++)
           
                if (a[i] lt; 0 amp;amp; (max_i lt; 0 a[max_i] lt; a[i]))
                    max_i = i;
                if (a[i] gt; 0 amp;amp; (min_i lt; 0 a[min_i] gt; a[i]))
                    min_i = i;
           

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

            var j = 0;
            for (var i = 0; i lt; a.Length; i++)
           
                if (i lt;= Math.Min(max_i, min_i) i gt;= Math.Max(max_i, min_i))
                    result[j++] = a[i];
           

            return result;
       

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


Agata Mishurenko
Спасибо! выводит ошибку что нет главной точки входа статического метода Main
Ирина Обрываева
Верно. Сделайте его и вызовите из него эту функцию, чтоя написала
Максим Чигладзе
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();
Julija
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;
Sergej Gamzinov
var result = new int[a.Length - Math.Абс(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;
Vasilisa Tuzhulina
Вот полностью с оберткой. Просто оно все достаточно мощное.
Кирилл Стряпкин
Спасибо!!
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт