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

Матрица змейкой

19.02.2020, 16:42. Показов 1583. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, вот условие задачи:Дана матрица размерности n*n, заполненная случайными числами. Построить матрицу той же размерности, упорядочив элементы матрицы по возрастанию и заполнив её змейкой по образцу.
Код у меня рабочий, но нужно, чтобы в матрице выводились числа по данному образцуНазвание: матри.jpg
Просмотров: 39

Размер: 4.5 Кб
Вот мой код:
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
int n;
        int[,] a;
        private void button1_Click(object sender, EventArgs e)
        {
            n = Convert.ToInt32(textBox1.Text);
 
            Random rnd = new Random();
 
            a = new int[n, n];
 
            int[,] b = new int[n, n];
 
 
            /*ГЕНЕРАЦИЯ ДАТА ГРИД ВЬЮ*/
            for (int i = 0; i < n; i++)
            {
                dataGridView1.ColumnCount = n;
                dataGridView1.RowCount = n;
                this.dataGridView1.Size = new System.Drawing.Size(70 * n, (65 * n) - 65);
 
            }
 
            /*ГЕНЕРАЦИЯ ДАТА ГРИД ВЬЮ 2*/
            for (int i = 0; i < n; i++)
            {
                dataGridView2.ColumnCount = n;
                dataGridView2.RowCount = n;
                this.dataGridView2.Size = new System.Drawing.Size(70 * n, (65 * n) - 65);
 
            }
 
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < n; j++)
                {
                    a[i, j] = rnd.Next(1, 10);
                }
            }
            /*ЗАПОЛНЕНИЕ ДАТА ГРИД ВЬЮ*/
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < n; j++)
                {
                    dataGridView1.Rows[i].Cells[j].Value = a[i, j];
                    dataGridView2.Rows[i].Cells[j].Value = a[i, j];
 
                }
            }
 
    
            button1.Visible = false;
            button2.Visible = true;
            button3.Visible = false;
            dataGridView1.Visible = true;
            dataGridView2.Visible = false;
            dataGridView1.Location = new System.Drawing.Point(15, 93);
            dataGridView2.Location = new System.Drawing.Point((70 * n)+30, 93);
        }
 
        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
 
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            var ordered = a.Cast<int>().OrderByDescending(c => c).ToArray();
            int index = 0;
 
            for (int i = n - 1; i >= 0;i-- )
            {
                if (n % 2 == 0)
                {
                    if (i % 2 == 0)
                    {
                        for (int j = n - 1; j >= 0; j--)
                        {
                            a[i, j] = ordered[index++];
                        }
                    }
                    else
                    {
                        for (int j = 0; j < n; j++)
                        {
                            a[i, j] = ordered[index++];
                        }
                    }
                }
                else
                {
                    if (i % 2 == 0)
                    {
                        for (int j = 0; j < n; j++)
                        {
                            a[i, j] = ordered[index++];
                        }
                    }
                    else
                    {
                        for (int j = n - 1; j >= 0; j--)
                        {
                            a[i, j] = ordered[index++];
                        }
                    }
                }
 
            }
            for (int i = n-1; i >=0; i--)
            {
                for (int j = 0; j < n; j++)
                {
                    dataGridView2.Rows[i].Cells[j].Value = a[i, j];
                }
 
 
            }
            button1.Visible = false;
            button2.Visible = false;
            button3.Visible = true;
            dataGridView2.Visible = true;
        }
 
        private void button3_Click(object sender, EventArgs e)
        {
            button1.Visible = true;
            button2.Visible = false;
            button3.Visible = false;
            textBox1.Text = "";
           
            dataGridView1.Rows.Clear();
            dataGridView2.Rows.Clear();
           
            dataGridView1.Visible = false;
            dataGridView2.Visible = false;
            this.ClientSize = new System.Drawing.Size(263, 95);
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            this.ClientSize = new System.Drawing.Size(263, 95);
        }
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.02.2020, 16:42
Ответы с готовыми решениями:

Заполнение массива змейкой
пример 43210 56789 для заполнения обязательно использовать вектор class Program { static void arr_input ( int...

Обойти массив змейкой
Не как не могу придумать как обойти массив вот такой змейкой. +----+----+----+----+----+----+----+----+ | 1 | 2 | 6 | 7 | 15 | 16 |...

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

5
dive
 Аватар для I can
4956 / 4651 / 844
Регистрация: 13.04.2015
Сообщений: 9,851
19.02.2020, 17:20
Цитата Сообщение от lord Snow Посмотреть сообщение
по возрастанию
А у Вас по убыванию сортируется.
0
0 / 0 / 0
Регистрация: 23.12.2015
Сообщений: 25
19.02.2020, 17:23  [ТС]
а можете подсказать, что изменить, чтобы сортировалось по возрастанию?
0
dive
 Аватар для I can
4956 / 4651 / 844
Регистрация: 13.04.2015
Сообщений: 9,851
19.02.2020, 18:12
Лучший ответ Сообщение было отмечено lord Snow как решение

Решение

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
         private void button2_Click(object sender, EventArgs e)
        {
            var ordered = a.Cast<int>().OrderBy(c => c).ToArray();
            int index = 0;
            bool b = true;
 
            for (int i = n - 1; i >= 0; i--)
            {
                b = !b;
                if (b)
                {
                    for (int j = 0; j < n; j ++)
                    {
                        a[i, j] = ordered[index++];
                    }
                }
                else
                {
 
                    for (int j = n-1; j >= 0; j --)
                    {
                        a[i, j] = ordered[index++];
                    }
                }
 
               }
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < n; j++)
                {
                    dataGridView2.Rows[i].Cells[j].Value = a[i, j];
                }
 
 
            }
            button1.Visible = false;
            button2.Visible = false;
            button3.Visible = true;
            dataGridView2.Visible = true;
        }
1
dive
 Аватар для I can
4956 / 4651 / 844
Регистрация: 13.04.2015
Сообщений: 9,851
19.02.2020, 18:20
Вроде всё правильно, по заданию
Миниатюры
Матрица змейкой  
0
0 / 0 / 0
Регистрация: 23.12.2015
Сообщений: 25
19.02.2020, 18:20  [ТС]
спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.02.2020, 18:20
Помогаю со студенческими работами здесь

Вывод массива змейкой
Нужна помощь в выводе массива. На форме есть numericUpDown, который задаёт размер массива, массив заполняется случайными числами. При...

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

Заполнить матрицу змейкой
Подскажите пожалуйста в чем ошибка? int n=6, m=6; int H = new int; for (int i = 1; i &lt; n; i++) ...

Заполнение массива змейкой
Здравствуйте! Есть задача: Заполнить массив в следующей последовательности: 1 2 3 4 5 6 12 11 10 9 8 7 13 14 15 16 17 18 ...

Вывод массива змейкой
Можете объяснить, как работает этот код? Никак не могу разобраться, вообще не понимаю, что к чему. Спасибо заранее!


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru