Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.84/19: Рейтинг темы: голосов - 19, средняя оценка - 4.84
4 / 3 / 3
Регистрация: 22.09.2015
Сообщений: 17
1

Двумерный динамический массив

22.09.2015, 06:52. Показов 3694. Ответов 5
Метки нет (Все метки)

Задание такое:
Создать динамический двумерный массив размером 200x200 элементов, заполнить его случайными целыми числами (типа Byte). Переписать элементы матрицы во вновь созданный одномерный динамический массив.

Сначала написал код в таком виде, все работает, никаких проблем не возникло:

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
class Program
    {
        static void Main(string[] args)
        {
                int n = 5;
                byte [,] mass = new byte[n,n];
                byte[] m1 = new byte[n * n];         
                Random rand = new Random();
 
                Console.WriteLine("The Random bytes are: ");
 
                for (int i = 0; i < n; i++)
                {
                    for (int j = 0; j < n; j++)
                    {
                        mass[i,j] = (byte) rand.Next(0, 200);
                        Console.Write(mass[i,j] + " ");
                    }
                    Console.WriteLine();
                }
 
                Console.WriteLine("#1: ");
                for (int i = 0; i < n; i++)
                {
                    for (int j = 0; j < n; j++)
                    {   
                        m1[i] = mass[i, j];
 
                        Console.Write(m1[i] + " ");         
                    }
                }
                Console.ReadLine();
        }
    }
Но вот решил переписать используя list<byte>, но вот как заполнить этот массив случайными числами? Пробовал функцией Random, но в строчке for (int j = 0; j < n; j++) row.Add(rand.Next()) ругается компилятор на преобразование типов.

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
class Program
    {
        static void Main(string[] args)
        {
            List<List<byte>> mass = new List<List<byte>>();
            List<byte> row = new List<byte>();
            int n = 5;
            Random rand = new Random();
 
                for (int i = 0; i < n; i++)
                {
                    row = new List<byte>();
                    for (int j = 0; j < n; j++) row.Add(rand.Next()) 
                    mass.Add(row);
                }
 
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < n; j++)
                    Console.Write(mass[i][j].ToString()+" ");
                Console.WriteLine();
            }
                Console.ReadLine();
        }
    }
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.09.2015, 06:52
Ответы с готовыми решениями:

Двумерный динамический массив
Как создать двумерный динамический массив? Какими способами? Желательно с обьяснением)

Как создать двумерный динамический массив
Как создать двумерный массив на C# (размерность неизвестна, вычисляется в ходе работы программы) и...

Как добавить элемент в двумерный динамический массив?
Уважаемые программисты, очень прошу помочь... Есть динамический массив, описанный как: ...

Создать двумерный динамический массив типа int
Как создать двумерный ДИНАМИЧЕСКИЙ массив типа int.

5
284 / 171 / 86
Регистрация: 19.04.2014
Сообщений: 1,095
22.09.2015, 07:10 2
Поясните пятую строку.
0
4 / 3 / 3
Регистрация: 22.09.2015
Сообщений: 17
22.09.2015, 07:27  [ТС] 3
инициализируем двумерный динамический массив
0
Эксперт .NETАвтор FAQ
10080 / 4918 / 1786
Регистрация: 11.01.2015
Сообщений: 6,128
Записей в блоге: 34
22.09.2015, 08:23 4
Лучший ответ Сообщение было отмечено Xsenus_ilel как решение

Решение

Xsenus_ilel,
C#
1
row.Add(rand.Next())
=>
C#
1
row.Add((byte)rand.Next(256))
1
4 / 3 / 3
Регистрация: 22.09.2015
Сообщений: 17
22.09.2015, 08:27  [ТС] 5
Спасибо.
0
0 / 0 / 0
Регистрация: 21.04.2018
Сообщений: 1
21.06.2018, 14:45 6
В каком месте он динамический, интересно?

Добавлено через 1 минуту
Задание такое:
Создать динамический двумерный массив размером 200x200 элементов, заполнить его случайными целыми числами (типа Byte). Переписать элементы матрицы во вновь созданный одномерный динамический массив.
В каком это месте он динамический, интересно? И где он 200х200, когда он 5х5?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.06.2018, 14:45

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Как создать двумерный динамический массив на указателях?
Имеется вот такой код, но если поставить **b выбивает ошибку; unsafe public static void smejn() ...

Как сделать двумерный динамический массив типа А
В общем вот пример Ну я думаю что все понятно. Что-то вроде new A Но это естественно не...

Создать динамический двумерный массив целых чисел
Помогите создать динамический двумерный массив целых чисел (матрица) Базовый класс с выводом...

Двумерный динамический массив: как увеличить количество элементов
Доброй ночи. Возникла проблема создания двумерного массива. По сути я создал массив, но теперь его...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.