С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
0 / 0 / 1
Регистрация: 03.11.2018
Сообщений: 33

Одномерные и Двумерные массивы. Удалить все положительные элементы, имеющие четный порядковый номер

03.11.2018, 15:22. Показов 3652. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В массиве A=(a1, а2, ..., аn) удалить все положительные элементы, имеющие четный порядковый номер, идущие после минимального элемента массива. C#.

Написать 2 программы: 1) для Одномерного массива; 2) для Двумерного массива.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.11.2018, 15:22
Ответы с готовыми решениями:

В массиве удалить все положительные элементы, имеющие четный порядковый номер
В массиве А=(a1,a2,...,an) удалить все положительные эллементы имеющие четный порядковый номер и идущие после минимального элемента...

Удалить все положительные элементы, имеющие четный порядковый номер, идущие после минимального элемента массива.
Задание. Выполнить действия над одномерным массивом. Удалить все положительные элементы, имеющие четный порядковый номер, идущие после...

В массиве A=(a1, а2, ., an) удалить все положительные элементы, имеющие четный порядковый номер, идущие после минимального элемента массива
В массиве A=(a1, а2, ..., an) удалить все положительные элементы, имеющие четный порядковый номер, идущие после минимального элемента...

15
 Аватар для ashsvis
923 / 503 / 202
Регистрация: 08.10.2018
Сообщений: 1,553
Записей в блоге: 11
03.11.2018, 16:41
Цитата Сообщение от Shved73 Посмотреть сообщение
имеющие четный порядковый номер ... для Двумерного массива.
Это как?
0
0 / 0 / 1
Регистрация: 03.11.2018
Сообщений: 33
04.11.2018, 12:30  [ТС]
скорее всего имеется в виду порядковые номера такие как :[0,0], [2,2], [и тд.] которые будут % 2 == 0
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16118 / 11242 / 2887
Регистрация: 21.04.2018
Сообщений: 33,047
Записей в блоге: 2
04.11.2018, 12:49
Цитата Сообщение от Shved73 Посмотреть сообщение
скорее всего имеется в виду порядковые номера такие как :[0,0], [2,2], [и тд.] которые будут % 2 == 0
Деление по модулю возможно применить к числу. А как его надо применять к структуре из двух чисел - адресу элемента в двумерном массиве?
0
0 / 0 / 1
Регистрация: 03.11.2018
Сообщений: 33
04.11.2018, 14:33  [ТС]
этого не знаю, если сможете написать хотя бы для одномерного массива, буду очень благодарен!
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16118 / 11242 / 2887
Регистрация: 21.04.2018
Сообщений: 33,047
Записей в блоге: 2
04.11.2018, 14:42
Лучший ответ Сообщение было отмечено Shved73 как решение

Решение

Цитата Сообщение от Shved73 Посмотреть сообщение
этого не знаю, если сможете написать хотя бы для одномерного массива, буду очень благодарен!
А удалить - это именно удалить? То есть изменить размерность массива? Тогда лучше использовать массив списочного типа List.
C#
1
2
3
4
List<int> A = new List<int>() {/* элементы массива */};
for (int Ind = (A.Lenght / 2) *2; Ind >=0; Ind -=2)
     if (A[Ind] > 0)
           A.RemoveAt(Ind);
1
177 / 151 / 31
Регистрация: 28.09.2018
Сообщений: 204
04.11.2018, 14:45
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Деление по модулю возможно применить к числу. А как его надо применять к структуре из двух чисел - адресу элемента в двумерном массиве?
ну действительно вариант [0,0], [0,2], [0,4], [2,0], [2,2], [2,4] и т.д. формально можно назвать подходящим под условие задачи...
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16118 / 11242 / 2887
Регистрация: 21.04.2018
Сообщений: 33,047
Записей в блоге: 2
04.11.2018, 14:52
Цитата Сообщение от griffon88 Посмотреть сообщение
ну действительно вариант [0,0], [0,2], [0,4], [2,0], [2,2], [2,4] и т.д. формально можно назвать подходящим под условие задачи...
А может нужна сумма индексов строки и колонки? И тогда [1, 1], [3, 5] тоже должны входить.
А может нужен глобальный индекс? Это когда многомерный массив представляется в виде одномерного? Тогда это будет зависеть от длины колонки.

Нужно уточнять ТЗ - а то стоко нафантазировать можно....

Добавлено через 1 минуту
И как из двумерного массива можно УДАЛИТЬ элемент? Явная путаница с ТЗ. Оно или не полно, или искажено.
0
0 / 0 / 1
Регистрация: 03.11.2018
Сообщений: 33
04.11.2018, 14:53  [ТС]
удалить - это именно удалить, т.е. размерность массива изменится. Если не сложно, то можете написать через дублирующий массив
0
177 / 151 / 31
Регистрация: 28.09.2018
Сообщений: 204
04.11.2018, 15:00
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Нужно уточнять ТЗ - а то стоко нафантазировать можно....
в целом да, но не всегда есть возможность уточнить тз, поэтому всегда есть запасной вариант - сделать так как понял задание, а на претензии ответить - "я художник - я так вижу"
0
0 / 0 / 1
Регистрация: 03.11.2018
Сообщений: 33
04.11.2018, 15:09  [ТС]
В массиве A=(a1, а2, ..., аn) удалить все отрицательные элементы, стоящие перед минимальным элементом массива (это похожая задача, вдруг чем-то поможет)
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
using System;
using System.Linq;
class Program {
  static void Main() {
 * *int n = Convert.ToInt32(Console.ReadLine());
 * *int[] a = new int[n];
 * *Random r = new Random();
 * *for (int i = 0; i < a.Length; i++) {
 * * *a[i] = r.Next(-100, 101);
 **  *Console.Write(a[i] + " ");
 * *}
 * *Console.WriteLine();
 * *int min = a.Min();
 * *int im = 0, k = 0;
 * *while (a[im] != min) {
 * * * *if (a[im] < 0 *&& a[im] !=min) k++;
 * * * *im++;
 * *}
 * *int nb = n - k;
 * *int[] b = new int[nb];
 * *int j = 0;
 * *for (int i = 0; i < n; i++ ) {
 * * * *if (i < im && a[i] < 0);
 * * * *else {
 * * * * * *b[j] = a[i];
 * * * * * *j++;
 * * * *}
 * *}
 * *foreach (int i in b)
 * *Console.Write (i + " ");
 *}
}
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16118 / 11242 / 2887
Регистрация: 21.04.2018
Сообщений: 33,047
Записей в блоге: 2
04.11.2018, 15:13
Цитата Сообщение от griffon88 Посмотреть сообщение
в целом да, но не всегда есть возможность уточнить тз, поэтому всегда есть запасной вариант - сделать так как понял задание, а на претензии ответить - "я художник - я так вижу"
Удаление элемента двумерного массива - я, вообще, никак не понял.....

Добавлено через 3 минуты
Цитата Сообщение от Shved73 Посмотреть сообщение
В массиве A=(a1, а2, ..., аn) удалить все отрицательные элементы, стоящие перед минимальным элементом массива (это похожая задача, вдруг чем-то поможет)
Для одномерного я Вам решение уже скинул.
А с двумерным непонятна сама формулировка ТЗ.

Добавлено через 58 секунд
Цитата Сообщение от Shved73 Посмотреть сообщение
Если не сложно, то можете написать через дублирующий массив
Нет необходимости в нём.
0
0 / 0 / 1
Регистрация: 03.11.2018
Сообщений: 33
04.11.2018, 15:15  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Удаление элемента двумерного массива - я, вообще, никак не понял.....
не берите в голову задачу с двумерным массивом, если сможете написать для одномерного массива (с дублирующим массивом), то буду благодарен!

Добавлено через 1 минуту
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Нет необходимости в нём.
К сожалению мы не проходили списки (List) , по этому прошу Вас написать через дублирующий массив
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16118 / 11242 / 2887
Регистрация: 21.04.2018
Сообщений: 33,047
Записей в блоге: 2
04.11.2018, 16:29
Лучший ответ Сообщение было отмечено Shved73 как решение

Решение

Цитата Сообщение от Shved73 Посмотреть сообщение
К сожалению мы не проходили списки (List) , по этому прошу Вас написать через дублирующий массив
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int[] A = {/* элементы массива */};
int[] B = new int[A.Lenght];
int IndB=0;
for (int Ind = 0 ; Ind < A.Lenght; Ind ++)
{
     if (Ind % 2 ==0)
          if (A[Ind] > 0)
          {
              B[IndB] =  A[Ind];
              IndB++;
           }
       else 
       {
          B[IndB] =  A[Ind];
          IndB++;
       }
}
Array.Resize(B, IndB);
Добавлено через 10 минут
Небольшая поправка - перепутал условие
C#
7
          if (A[Ind] <= 0)
1
0 / 0 / 1
Регистрация: 03.11.2018
Сообщений: 33
04.11.2018, 16:47  [ТС]
Элд Хасп, Я изменил Ваш код, Он точно верно работает? :

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
namespace ConsoleApp5
{
    class Program
    {
        static void Main(string[] args)
        {
            Random rnd = new Random(); 
            int n = Int32.Parse(Console.ReadLine());
            int[] A = new int [n];
            int IndB = 0;
            for(int i =0; i< A.Length; i++)
            {
                A[i] = rnd.Next(-10,11);
            }
            foreach(int a in A)
            {
                Console.Write(a + " ");
            }
 
            int[] B = new int[A.Length];
            for (int Ind = 0; Ind <A.Length; Ind++)
            {
                if (Ind % 2 == 0)
                    if (A[Ind] > 0)
                    {
                        B[IndB] = A[Ind];
                        IndB++;
                    }
                    else
                    {
                        B[IndB] = A[Ind];
                        IndB++;
                    }
            }
            Array.Resize(ref B, IndB);
            Console.WriteLine();
            foreach(int b in B)
            {
                Console.Write(b+" ");
            }
 
            Console.ReadKey();
        }
    }
}
Добавлено через 8 минут
Элд Хасп, Спасибо вам большое, прошлое сообщение можете не смотреть(там стоит старое условие), я сам не сразу увидел, что Вы дописали под кодом
0
0 / 0 / 1
Регистрация: 03.11.2018
Сообщений: 33
17.11.2018, 08:28  [ТС]
Элд Хасп, вот для двумерного массива
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
namespace ConsoleApp6
{
    class Program
    {
        static void Main(string[] args)
        {
            int n = Convert.ToInt32(Console.ReadLine());
            int b = Convert.ToInt32(Console.ReadLine());
            int[,] mas = new int[n, b];
            int[] mas2 = new int[n * b];
            int c = 0;
            int p = 0;
            int min = 0;
 
            Random r = new Random();
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < b; j++)
                {
                    Console.Write((mas[i, j] = r.Next(-10, 11)) + "\t ");
                    mas2[c] = mas[i, j];
                    if (mas2[i] < min)
                    {
                        min = mas2[i];
                        p = i;
                    }
                    c++;
                }
                Console.WriteLine();
            }
 
            Console.WriteLine();
            int l = 0;
            int s = 0;
 
            for (int i = 0; i < n * b; i++)
            {
                if (((mas2[i - l] % 2) == 0) && (((i + 1) % 2) == 0) && (i >= (p + 1)) && (mas2[i - l] > 0))
                {
                    Console.WriteLine("{0},{1}", i, mas2[i - l]);
                    l += 1;
                    for (int j = i - s; j < n * b - l; j++)
                    {
                        mas2[j] = mas2[n - (n - j) + 1];
                    }
                    s += 1;
                }
            }
            int d = 0;
            Console.WriteLine();
 
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < b; j++)
                {
                    if (d < n * b - 1)
                    {
                        Console.Write(mas2[d] + "\t ");
                        d++;
                    }
                    else
                    {
                        break;
                    }
 
                }
 
                Console.WriteLine();
            }
            Console.ReadKey();
 
 
        }
    }
}
Добавлено через 2 минуты
Вот для одномерного массива
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
namespace ConsoleApp7
{
    class Program
    {
        static void Main(string[] args)
        {
            int n = Convert.ToInt32(Console.ReadLine());
            int[] mas = new int[n];
            int min = 0;
            int p = 0;
 
            Random rnd = new Random();
            for (int i = 0; i < n; i++)
            {
                mas[i] = rnd.Next(-10, 10);
                if (mas[i] < min)
                {
                    min = mas[i];
                    p = i;
                }
            }
 
            foreach (int el in mas)
            {
                Console.Write(el + " ");
            }
            Console.WriteLine();
            int s = 0;
            int l = 0;
            for (int i = 0; i < n; i++)
            {
                if (((mas[i - l] % 2) == 0) && ((((i) + 1) % 2) == 0) && ((i) >= (p + 1)) && (mas[i - l] > 0))
                {
                    Console.WriteLine("{0},{1}", i, mas[i - l]);
                    l += 1;
 
                    for (int j = i - s; j < n - l; j++)
                    {
                        mas[j] = mas[n - (n - j) + 1];
                    }
                    s += 1;
                }
            }
            Console.WriteLine();
            for (int i = 0; i < n - l; i++)
            {
                Console.Write(mas[i] + " ");
            }
 
            Console.ReadKey();
 
        }
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.11.2018, 08:28
Помогаю со студенческими работами здесь

Массив. Удалить все положительные элементы, имеющие четный порядковый номер, идущие после минимального элемента массива
11. В массиве A=(a1, а2, ..., аn) удалить все положительные элементы, имеющие четный порядковый номер, идущие после минимального элемента...

В одномерном массиве А=(а1,а2...аn) все положительные элементы, имеющие чётный порядковый номер
Помогите плиз написать программу: В одномерном массиве А=(а1,а2...аn) все положительные элементы, имеющие чётный порядковый номер,...

Все положительные элементы массива, имеющие четный порядковый номер, переписать в начало массива
В одномерном массивеA=(a1, а2, ..., а n) все положительные элементы, имеющие четный порядковый номер, переписать в начало массива.

В массиве удалить все положительные числа имеющие четный номер
В массиве удалить все положительные числа, которые имеют четный порядковый номер, и идут после минимального элемента массива. Обязательно...

Массив: В одномерном массиве, все отрицательные элементы, имеющие четный порядковый номер переписать в начало массива.
Подскажите, есть задача: В одномерном массиве, все отрицательные элементы, имеющие четный порядковый номер переписать в начало массива. В...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru