0 / 0 / 1
Регистрация: 03.11.2018
Сообщений: 33
1

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

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

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

Написать 2 программы: 1) для Одномерного массива; 2) для Двумерного массива.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.11.2018, 15:22
Ответы с готовыми решениями:

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

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

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

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

15
910 / 493 / 199
Регистрация: 08.10.2018
Сообщений: 1,523
Записей в блоге: 11
03.11.2018, 16:41 2
Цитата Сообщение от Shved73 Посмотреть сообщение
имеющие четный порядковый номер ... для Двумерного массива.
Это как?
0
0 / 0 / 1
Регистрация: 03.11.2018
Сообщений: 33
04.11.2018, 12:30  [ТС] 3
скорее всего имеется в виду порядковые номера такие как :[0,0], [2,2], [и тд.] которые будут % 2 == 0
0
Модератор
Эксперт .NET
13286 / 9575 / 2569
Регистрация: 21.04.2018
Сообщений: 28,252
Записей в блоге: 2
04.11.2018, 12:49 4
Цитата Сообщение от Shved73 Посмотреть сообщение
скорее всего имеется в виду порядковые номера такие как :[0,0], [2,2], [и тд.] которые будут % 2 == 0
Деление по модулю возможно применить к числу. А как его надо применять к структуре из двух чисел - адресу элемента в двумерном массиве?
0
0 / 0 / 1
Регистрация: 03.11.2018
Сообщений: 33
04.11.2018, 14:33  [ТС] 5
этого не знаю, если сможете написать хотя бы для одномерного массива, буду очень благодарен!
0
Модератор
Эксперт .NET
13286 / 9575 / 2569
Регистрация: 21.04.2018
Сообщений: 28,252
Записей в блоге: 2
04.11.2018, 14:42 6
Лучший ответ Сообщение было отмечено 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 7
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Деление по модулю возможно применить к числу. А как его надо применять к структуре из двух чисел - адресу элемента в двумерном массиве?
ну действительно вариант [0,0], [0,2], [0,4], [2,0], [2,2], [2,4] и т.д. формально можно назвать подходящим под условие задачи...
0
Модератор
Эксперт .NET
13286 / 9575 / 2569
Регистрация: 21.04.2018
Сообщений: 28,252
Записей в блоге: 2
04.11.2018, 14:52 8
Цитата Сообщение от 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  [ТС] 9
удалить - это именно удалить, т.е. размерность массива изменится. Если не сложно, то можете написать через дублирующий массив
0
177 / 151 / 31
Регистрация: 28.09.2018
Сообщений: 204
04.11.2018, 15:00 10
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Нужно уточнять ТЗ - а то стоко нафантазировать можно....
в целом да, но не всегда есть возможность уточнить тз, поэтому всегда есть запасной вариант - сделать так как понял задание, а на претензии ответить - "я художник - я так вижу"
0
0 / 0 / 1
Регистрация: 03.11.2018
Сообщений: 33
04.11.2018, 15:09  [ТС] 11
В массиве 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
13286 / 9575 / 2569
Регистрация: 21.04.2018
Сообщений: 28,252
Записей в блоге: 2
04.11.2018, 15:13 12
Цитата Сообщение от griffon88 Посмотреть сообщение
в целом да, но не всегда есть возможность уточнить тз, поэтому всегда есть запасной вариант - сделать так как понял задание, а на претензии ответить - "я художник - я так вижу"
Удаление элемента двумерного массива - я, вообще, никак не понял.....

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

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

Добавлено через 1 минуту
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Нет необходимости в нём.
К сожалению мы не проходили списки (List) , по этому прошу Вас написать через дублирующий массив
0
Модератор
Эксперт .NET
13286 / 9575 / 2569
Регистрация: 21.04.2018
Сообщений: 28,252
Записей в блоге: 2
04.11.2018, 16:29 14
Лучший ответ Сообщение было отмечено 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  [ТС] 15
Элд Хасп, Я изменил Ваш код, Он точно верно работает? :

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  [ТС] 16
Элд Хасп, вот для двумерного массива
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.11.2018, 08:28
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru