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

Создать массив Z, состоящий из положительных элементов массивов X и Y

11.02.2020, 10:01. Показов 4586. Ответов 14

Студворк — интернет-сервис помощи студентам
Даны массивы X (n), Y (n). Создать массив Z, состоящий из положительных элементов массивов X и Y. Вывести на экран все три массива. С синтаксисом c# очень плохо знаком, помогите.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.02.2020, 10:01
Ответы с готовыми решениями:

Создать и вывести на печать новый массив, состоящий из положительных элементов массива
1.Создать и вывести на печать новый массив, состоящий из положительных элементов массива 2 2.Определить индексы минимального элемента...

Объявить одномерный массив массивов, состоящий из нескольких элементов
Здравствуйте. Мне нужно объявить одномерный массив массивов, состоящий из нескольких элементов. int jaggedArray4 = new int { ...

Сформировать новый массив В, состоящий из положительных элементов массива А
Помогите с задачкой (1) 1.Массив А вводится с клавиатуры. Сформировать новый массив В, состоящий из положительных элементов массива А....

14
28 / 13 / 8
Регистрация: 19.11.2015
Сообщений: 129
11.02.2020, 10:12
Создание массива:
C#
1
int[] numbers = new int[3];
Создание массива и его инициализация:
C#
1
int[] numbers = new int[3] { {6},{5},{8} };
Цикл для массива:
C#
1
2
3
4
for (int i = 0; i<numbers.lenght; i++)
{
Console.WriteLine(i.ToString()); // например выводим юзеру инфу, у тебя мб любое др действие
}
Условия на проверку, которое тебе понадобится в самом цикле:
C#
1
2
3
4
if (i>0) 
{
Console.WriteLine(i.ToString()); // если число больше, то запиши его в 
}
Запись в массив:
C#
1
array[0] = 12314 // запись числа в массив.


Весь синтаксис нужный тебе указан выше!
Осталось только заюзать и немножко приложить "подумать".
0
880 / 559 / 291
Регистрация: 21.11.2012
Сообщений: 1,554
11.02.2020, 11:42
Кликните здесь для просмотра всего текста
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
    public static class ArraysExtensions
    {
        private static Random rnd = new Random();
 
        public static int[] Create(int length, int minValue = -10, int maxValue = 10)
        {
            var result = new int[length];
 
            for(int i = 0; i < length; i++)
            {
                result[i] = rnd.Next(minValue, maxValue);
            }
 
            return result;
        }
 
        public static void Print(this int[] arr, string name = "")
        {
            if (!string.IsNullOrEmpty(name)) name += " = ";
            Console.WriteLine($"{name}{{{string.Join(", ", arr)}}}");
        }
 
        private static void Add(this int[] arr, IEnumerable<int> range, ref int index)
        {
            foreach (var value in range)
            {
                arr[index] = value;
                index++;
            }
        }
 
        public static int[] Union(this IEnumerable<int> arr, IEnumerable<int> range)
        {
            var result = new int[arr.Count() + range.Count()];
            var index = 0;
 
            Add(result, arr, ref index);
            Add(result, range, ref index);
 
            return result;
        }
    }


пример работы:
C#
1
2
3
4
5
6
7
8
9
10
11
12
var n = 5;
 
var X = ArraysExtensions.Create(n);
var Y = ArraysExtensions.Create(n);
 
var Z = X.Where(x => x > 0).Union(Y.Where(y => y > 0));
            
X.Print("X");
Y.Print("Y");
Z.Print("Z");
 
Console.ReadKey();
0
 Аватар для Immo
692 / 509 / 238
Регистрация: 02.10.2012
Сообщений: 1,741
11.02.2020, 11:47
C#
1
int[] Z = X.Where(x => x > 0).Concat(Y.Where(x => x > 0)).ToArray();
Цитата Сообщение от hamin Посмотреть сообщение
.Union
лучше заменить на Concat
иначе если будут одинаковые положительные, то в Z будет всего 1 вхождение
1
880 / 559 / 291
Регистрация: 21.11.2012
Сообщений: 1,554
11.02.2020, 12:04
Immo,

че-то я затупил и придумал велосипед, который и так уже есть) Union это у меня метод расширения)

Добавлено через 3 минуты
спасибо Immo за поправку, тогда в классе расширений только создание и распечатка массива:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public static class ArraysExtensions
    {
        private static Random rnd = new Random();
 
        public static int[] Create(int length, int minValue = -10, int maxValue = 10)
        {
            var result = new int[length];
 
            for (int i = 0; i < length; i++)
            {
                result[i] = rnd.Next(minValue, maxValue);
            }
 
            return result;
        }
 
        public static void Print(this int[] arr, string name = "")
        {
            if (!string.IsNullOrEmpty(name)) name += " = ";
            Console.WriteLine($"{name}{{{string.Join(", ", arr)}}}");
        }
    }
и применение
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 public static void Main(string[] args)
        {
            var n = 5;
 
            var X = ArraysExtensions.Create(n);
            var Y = ArraysExtensions.Create(n);
 
            var Z = X.Where(x => x > 0).Concat(Y.Where(y => y > 0)).ToArray();
 
            X.Print("X");
            Y.Print("Y");
            Z.Print("Z");
 
            Console.ReadKey();
 
            Console.ReadKey();
        }
1
28 / 13 / 8
Регистрация: 19.11.2015
Сообщений: 129
11.02.2020, 15:06
мда, ребят, вы такими конструкциями опериете ....
Посмотрите задание - там всё элементарно и всё должно быть очень и очень просто!
Это задание для Студента 2-ого курса, где "такое" явно не проходят, а берут уже из книг и самообучения или курсов! А на курсах такое не преподают даже (максимум рассказывают за 2-5 минут) ибо тут даже учиться не надо и это решение сделает любой программист, знающий хотя бы 1 язык программирования.

ИМХО, сдав такую работу как у hamin, я бы на месте препода отправил на пересдачу ибо ясно что делал не он сам а откуда-то скачал. Решение красивое, короткое, НО не для студента.
0
880 / 559 / 291
Регистрация: 21.11.2012
Сообщений: 1,554
17.02.2020, 11:46
NikolaSN,
Цитата Сообщение от NikolaSN Посмотреть сообщение
ИМХО, сдав такую работу как у hamin, я бы на месте препода отправил на пересдачу ибо ясно что делал не он сам а откуда-то скачал. Решение красивое, короткое, НО не для студента.
т.е. по-вашему студент должен писать простым кодом и понять линк он не в состоянии? не вижу абсолютно никакой проблемы, если студент понимает и умеет применять линк. Со стороны препода естественно будут вопросы, но если студент сможет на них ответить - + ему в карму
0
2810 / 1679 / 885
Регистрация: 14.04.2015
Сообщений: 5,723
17.02.2020, 12:23
Лучший ответ Сообщение было отмечено billy_milliga как решение

Решение

NikolaSN, billy_milliga, хотя бы так. а NikolaSN что-то несвязное написал.
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
76
77
using System;
 
namespace ConsoleApp146
{
    class Program
    {
 
        static void Main(string[] args)
        {
            int N = 4;
            int M = 0;
            int Count = 0;
 
            Random Rand = new Random();
 
            int[] X = new int[N];
 
            for (int i = 0; i < X.Length; i++)
            {
                X[i] = Rand.Next(-5, 5);
 
                Console.Write(X[i] + " ");
 
                if (X[i] > 0 )
                {
                    Count++;
                }
            }
 
            Console.WriteLine();
 
            int[] Y = new int[N];
 
            for (int i = 0; i < Y.Length; i++)
            {
                Y[i] = Rand.Next(-5, 5);
 
                Console.Write(Y[i] + " ");
 
                if (Y[i] > 0)
                {
                   Count++;
                }
 
            }
 
            Console.WriteLine();
 
            int[] Z = new int[Count];
 
            for (int i = 0; i < X.Length; i++)
            {
                if (X[i] > 0)
                {
                    Z[M] = X[i];
 
                    M++;
                }
            }
 
            for (int i = 0; i < Y.Length; i++)
            {
                if (Y[i] > 0)
                {
                    Z[M] = Y[i];
 
                    M++;
                }
            }
 
            for (int i = 0; i < Z.Length; i++)
            {
                Console.Write(Z[i] + " ");
            }
        }
    }
}
1
28 / 13 / 8
Регистрация: 19.11.2015
Сообщений: 129
17.02.2020, 14:42
hamin,
можно вопросик?
Когда проходят массивы? Ответ: на 3-4 занятии максимум.
А теперь вопрос: когда проходят вышеуказанные конструкции "для кармы"? Ответ жду.

Если есть ребенок у тебя - хорошо, если нет - поймёшь когда до 5-ого класса дорастёт, когда задачу пятикласника проще решить через систему уравнений, где ответ УЖЕ знаешь, а решить, да еще и объяснить - проблема у взрослых! Так же и тут!
Если человек знает линки, то для него эта задача была бы на ровне ясельной группы.
Цитата Сообщение от hamin Посмотреть сообщение
по-вашему студент должен писать простым кодом и понять линк он не в состоянии?
Ответ и ДА и НЕТ.
ДА - простым кодом, элементарным
НЕТ - в состоянии, но когда придёт время и научится работать с элементарным (переменные, массивы, текстовые редакторы и т.д.). Нет смысла в "первом классе" преподавать высшую математику.


Цитата Сообщение от AndreyVorobey Посмотреть сообщение
а NikolaSN что-то несвязное написал.
Спасибо модератору Даценд - отредактировал сообщение и оно стало более приклекательным!
Да, я не дал человеку полное решение, но я предоставил ему 95% информации и всего того, что ему потребуется для реализации его задачи, где оставшиеся 5% это его учеба, чтобы хоть немного подумал, а не под чистую скатал задачу копипастом - чего тут такого плохого?
0
2810 / 1679 / 885
Регистрация: 14.04.2015
Сообщений: 5,723
17.02.2020, 15:02
NikolaSN, кроме первой строки там и взять нечего, по факту. набор операций
0
28 / 13 / 8
Регистрация: 19.11.2015
Сообщений: 129
17.02.2020, 15:18
AndreyVorobey, Андрей, стёб не удался! (обзываться не хочу!)
Посмотри свой пост сегодня в 12.23 повнимательнее, т.е. твой код!

Вот мне интересно, чего там нету из мною написанного во втором посту топика?
Абсолютно всё применил!
Да, ты рандом заюзал чтобы заполнить массив, я же другой вариант предложил, НО это уже дело личное и вариантов заполнить массив множество - можно хоть через ту же Консоль, чем не вариант? Вариант.

Цитата Сообщение от NikolaSN Посмотреть сообщение
Создание массива:
Пожалуйста, твой код ниже:
Цитата Сообщение от AndreyVorobey Посмотреть сообщение
int[] X = new int[N];
Цитата Сообщение от NikolaSN Посмотреть сообщение
Цикл для массива:
Опять же применил, или нет?
Цитата Сообщение от AndreyVorobey Посмотреть сообщение
for (int i = 0; i < X.Length; i++)
Цитата Сообщение от NikolaSN Посмотреть сообщение
Условия на проверку, которое тебе понадобится в самом цикле:
Опять же применил в 24 строке твоего кода!
Цитата Сообщение от AndreyVorobey Посмотреть сообщение
if (X[i] > 0 )
Цитата Сообщение от NikolaSN Посмотреть сообщение
Запись в массив:
20 и 36 строки твоего кода посмотри!

Просьба сначала читать прежде чем просто говорить не приятные (а м.б. и не приятные) вещи в сторону третьих лиц Вам не известных.

Добавлено через 3 минуты
Да и по факту - твой код состоит именно из того что я и написал, где оставшаяся часть - это метод заполнения самого массива, где ты предоставил один из вариантов. Я же не говорю, что это НЕверный вариант, а надо было предоставить пользователю самому заполнить этот массив.
0
2810 / 1679 / 885
Регистрация: 14.04.2015
Сообщений: 5,723
17.02.2020, 16:17
NikolaSN, обзывайся не обзывайся, а если разбирать:
int[] numbers = new int[3] { {6},{5},{8} };
нет такого объявления массива, при котором он будет инициализирован.
Console.WriteLine(i.ToString());
к чему тут вывод индекса массива, если выводить нужно значение элемента массива.
if (i>0)
опять же, сравнивать нужно не индекс, а значение элемента массива.

Цитата Сообщение от NikolaSN Посмотреть сообщение
Создание массива и его инициализация:
создание = инициализация. массив инициализирован при объявлении. так правильно говорить.

где я сказал неприятные вещи? не оскорбил ведь. прокомментировал код в целом, а теперь еще более подробно, чтобы ты сам понял, что помощи с твоей стороны для человека, который очень плох в c#, ноль.
0
28 / 13 / 8
Регистрация: 19.11.2015
Сообщений: 129
17.02.2020, 17:28
AndreyVorobey, знаешь поговорку - *****ся и до столба можно! Так вот - ты именно это сейчас и делаешь!

Цитата Сообщение от AndreyVorobey Посмотреть сообщение
к чему тут вывод индекса массива, если выводить нужно значение элемента массива.
Ты знаком со словом "пример", "образец" и другие смежные по смыслу слова? Походу НЕТ! Я не давал человеку готовый код, как это сделал ты (это не есть плохо, заметь), я дал ему "направление" КАК делать! Это большая разница!

Цитата Сообщение от AndreyVorobey Посмотреть сообщение
опять же, сравнивать нужно не индекс, а значение элемента массива.
Опять же - ты читаешь выдержку из контекста, так и не удосуживавшийся даже ознакомиться с содержимым, а между прочим, там написано следующий коммент:
Цитата Сообщение от NikolaSN Посмотреть сообщение
// если число больше, то запиши его
Мне вот интересно стало, где ты увидел слово "индекс"? или буковка "i" у тебя всегда индекс?
Цитата Сообщение от AndreyVorobey Посмотреть сообщение
создание = инициализация
Косяк! Можно отдельно объявить переменную типа "массив" (т.е. что именно подразумевалось под словом "создание") и отдельно его инициализировать. Нет возможности инициализировать массив без его "создания" - ошибку словишь.
Но опять же это банальная игра слов, и если не придираться, то все прекрасно поняли о чем идет речь!

Цитата Сообщение от AndreyVorobey Посмотреть сообщение
что помощи с твоей стороны для человека, который очень плох в c#, ноль.
Аналогично! Помощи и я не увидел в твоём коде, как и в кодах выше - скопировал, вставил, распечатал, сдал, забыл и забил. Твой код абсолютно правильный, но ты заюзал абсолютно всё, что написано и в моём посте, т.е. все "механизмы", "примеры" (или как их там еще обозвать?) что доказано в моём предыдущем посте наглядно!

Цитата Сообщение от AndreyVorobey Посмотреть сообщение
прокомментировал код в целом,
да у меня в посте и не было кода! Это обрывки кода максимум, заюзав которые (как это было сделано наглядно в твоём коде, вот у тебя "код", а у меня нет!) можно было приложить 5% мозговой активности и элементарно написать задачу, даже будучи полным нулём в программировании. Сложи пазл, называется, где мои "кусочки" это частицы пазла.
0
1 / 1 / 0
Регистрация: 25.02.2018
Сообщений: 51
18.02.2020, 12:28  [ТС]
AndreyVorobey,
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
 private void button4_Click_1(object sender, EventArgs e)
        {
            int N = 4;
            int M = 0;
            int Count = 0;
 
            Random Rand = new Random();
 
            int[] X = new int[N];
 
            for (int i = 0; i < X.Length; i++)
            {
                X[i] = Rand.Next(-5, 5);
 
                Convert.ToDouble(X[i] + " ");
 
                if (X[i] > 0)
                {
                    Count++;
                }
            }
 
     
            int[] Y = new int[N];
 
            for (int i = 0; i < Y.Length; i++)
            {
                Y[i] = Rand.Next(-5, 5);
 
                Console.Write(Y[i] + " ");
 
                if (Y[i] > 0)
                {
                    Count++;
                }
 
            }
 
            Console.WriteLine();
 
            int[] Z = new int[Count];
 
            for (int i = 0; i < X.Length; i++)
            {
                if (X[i] > 0)
                {
                    Z[M] = X[i];
 
                    M++;
                }
            }
 
            for (int i = 0; i < Y.Length; i++)
            {
                if (Y[i] > 0)
                {
                    Z[M] = Y[i];
 
                    M++;
                }
            }
 
            for (int i = 0; i < Z.Length; i++)
            {
                Console.Write(Z[i] + " ");
            }
            dataGridView1.Rows.Add(X,Y,Z);
 
        }
если мне нужно добавить его в форму через datagridview, но выходит некая ошибка (system.int 32[]) в выводе элементов, что нужно исправить тогда, есть предположение что дело в выводе console.write
Миниатюры
Создать массив Z, состоящий из положительных элементов массивов X и Y  
0
1 / 1 / 0
Регистрация: 25.02.2018
Сообщений: 51
18.02.2020, 13:01  [ТС]
AndreyVorobey, спасибо, в итоге разобрался,
C#
1
2
3
4
string Xstring = string.Join(",", X);
            string Ystring = string.Join(",", Y);
            string Zstring = string.Join(",", Z);
            dataGridView1.Rows.Add(Xstring, Ystring, Zstring);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.02.2020, 13:01
Помогаю со студенческими работами здесь

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

Образуйте массив B, состоящий из положительных элементов заданного массива A(N), больших пяти
Помогите составить код программы Visual C# для задания: Образуйте массив B, состоящий из положительных элементов заданного массива A(N),...

Создать массив, состоящий из 3 неповторяющихся элементов
Нужно создать массив, состоящий из 3 элементов. Причем они не должны повторяться. Рандомить должен от 1 до 6 включая как 1 так и 6. ...

Как создать массив, состоящий из элементов перечисления?
Всем привет...Только начинаю изучать С# можете подсказать пожалуйста, как создать массив состоящий из элементов перечесления enum.

Задан массив, состоящий из целых положительных и отрицательных чисел. Создать новый массив из положительных элементов старого
Задача: Задан массив, состоящий из целых положительных и отрицательных чисел. Создать новый массив из положительных элементов старого ...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru