Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 14.11.2018
Сообщений: 21
1

Отсортировать столбцы матрицы по возрастанию их первых элементов

19.12.2018, 00:27. Просмотров 506. Ответов 1
Метки нет (Все метки)

Отсортировать столбцы матрицы по возрастанию их первых элементов.
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
 int temp = 0;
        int m;// stroka
        int n;//stolbets
        int[,] mas;//massiv
        void Generate(int M, int N, int[,] A) // func generat mas
        {
            Random rnd = new Random(); //metod random v perem rnd
            for (int i = 0; i < M; i++)
            {
 
 
                for (int j = 0; j < N; j++)
                {
 
                    A[i, j] = rnd.Next(1, 10); 
                }
 
 
            }
 
        }
 
        private void button1_Click(object sender, EventArgs e) //knopka odin perenos masiva v tablitsy
        {
            m = Convert.ToInt32(numericUpDown1.Value.ToString());//stroka
            n = Convert.ToInt32(numericUpDown1.Value.ToString());//stolbets
            mas = new int[m, n];
            Generate(m, n, mas);
            dataGridView1.RowCount = m;
            dataGridView1.ColumnCount = n;
            for (int i = 0; i < m; i++)
            {
                for (int j = 0; j < n; j++)
                {
                    dataGridView1.Rows[i].Cells[j].Value = mas[i, j];
 
 
                }
 
            }
            for (int i = 0; i < n; i++)
                dataGridView1.Columns[i].Width = 25;
        }
        void perestanovka(int str, int sto, int[,] B)
 
        {
            for (int i = 0; i < str; str++)
            {
                for (int j = 0; j < sto - 1; sto++)
                {
                    if (B[i, j] > B[i, j + 1])
                    {
                        temp = B[i, j];
                        B[i, j] = B[i, j + 1];
                        B[i, j + 1] = temp;
 
                    }
 
                }
 
 
            }
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            dataGridView2.RowCount = m;
            dataGridView2.ColumnCount = n;
            perestanovka(m, n, mas);
            m = dataGridView2.RowCount;
            n = dataGridView2.ColumnCount;
            for (int i = 0; i < m; i++)
            {
                for (int j = 0; j < n;j++)
                {
                    dataGridView2.Rows[i].Cells[j].Value = mas[i, j];
 
 
                }
 
            }
        }


вот код ,но работает сортирует неправильно,почему?winform

Добавлено через 25 минут
поменял один цикл,но теперь сортирует только первый столбец ,дальше не идет,из-за чего?


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
namespace WindowsFormsApp21
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        int temp = 0;
        int m;// stroka
        int n;//stolbets
        int[,] mas;//massiv
        void Generate(int M, int N, int[,] A) // func generat mas
        {
            Random rnd = new Random(); //metod random v perem rnd
            for (int i = 0; i < M; i++)
            {
 
 
                for (int j = 0; j < N; j++)
                {
 
                    A[i, j] = rnd.Next(1, 10); 
                }
 
 
            }
 
        }
 
        private void button1_Click(object sender, EventArgs e) //knopka odin perenos masiva v tablitsy
        {
            m = Convert.ToInt32(numericUpDown1.Value.ToString());//stroka
            n = Convert.ToInt32(numericUpDown1.Value.ToString());//stolbets
            mas = new int[m, n];
            Generate(m, n, mas);
            dataGridView1.RowCount = m;
            dataGridView1.ColumnCount = n;
            for (int i = 0; i < m; i++)
            {
                for (int j = 0; j < n; j++)
                {
                    dataGridView1.Rows[i].Cells[j].Value = mas[i, j];
 
 
                }
 
            }
            for (int i = 0; i < n; i++)
                dataGridView1.Columns[i].Width = 25;
        }
        void perestanovka(int str, int sto, int[,] B)
 
        {
            for (int j = 0; j < sto - 1; sto++) 
            {
                for (int i = 0; i < str; str++)
                {
                    if (B[i, j] > B[i + 1, j]
                    {
                        temp = B[i, j];
                        B[i, j] = B[i + 1, j];
                        B[i + 1, j] = temp;
 
                    }
 
                }
 
 
            }
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            dataGridView2.RowCount = m;
            dataGridView2.ColumnCount = n;
            perestanovka(m, n, mas);
            m = dataGridView2.RowCount;
            n = dataGridView2.ColumnCount;
            for (int i = 0; i < m; i++)
            {
                for (int j = 0; j < n;j++)
                {
                    dataGridView2.Rows[i].Cells[j].Value = mas[i, j];
 
 
                }
 
            }
        }
    }
}
Добавлено через 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
namespace WindowsFormsApp21
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        int temp = 0;
        int m;// stroka
        int n;//stolbets
        int[,] mas;//massiv
        void Generate(int M, int N, int[,] A) // func generat mas
        {
            Random rnd = new Random(); //metod random v perem rnd
            for (int i = 0; i < M; i++)
            {
 
 
                for (int j = 0; j < N; j++)
                {
 
                    A[i, j] = rnd.Next(1, 10); 
                }
 
 
            }
 
        }
 
        private void button1_Click(object sender, EventArgs e) //knopka odin perenos masiva v tablitsy
        {
            m = Convert.ToInt32(numericUpDown1.Value.ToString());//stroka
            n = Convert.ToInt32(numericUpDown1.Value.ToString());//stolbets
            mas = new int[m, n];
            Generate(m, n, mas);
            dataGridView1.RowCount = m;
            dataGridView1.ColumnCount = n;
            for (int i = 0; i < m; i++)
            {
                for (int j = 0; j < n; j++)
                {
                    dataGridView1.Rows[i].Cells[j].Value = mas[i, j];
 
 
                }
 
            }
            for (int i = 0; i < n; i++)
                dataGridView1.Columns[i].Width = 25;
        }
        void perestanovka(int str, int sto, int[,] B)
 
        {
            
            for (int j = 0; j < sto;j++)
            {
                for (int i = 0; i < str-1;i++)
                {
                    if (B[i, j] > B[i + 1, j])
                    {
                        temp = B[i, j];
                        B[i, j] = B[i + 1, j];
                        B[i + 1, j] = temp;
 
                    }
 
                }
 
 
            }
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            dataGridView2.RowCount = m;
            dataGridView2.ColumnCount = n;
            perestanovka(m, n, mas);
            m = dataGridView2.RowCount;
            n = dataGridView2.ColumnCount;
            for (int i = 0; i < m; i++)
            {
                for (int j = 0; j < n;j++)
                {
                    dataGridView2.Rows[i].Cells[j].Value = mas[i, j];
 
 
                }
 
            }
        }
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.12.2018, 00:27
Ответы с готовыми решениями:

Отсортировать столбцы матрицы по не возрастанию суммы их элементов
5) Дана матрица x &lt;= 15.Розробиты программу преобразования заданной матрицы так чтобы суммы...

Отсортировать столбцы матрицы по возрастанию элементов первой строки
Дано двумерный массив вещественных чисел размерностью . Провести сортировку столбцов по...

Отсортировать столбцы матрицы по возрастанию суммы элементов столбцов
Помогите найти ошибку! Почему-то не работает.. Дано двумерный массив. Разместить его столбцы...

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

1
467 / 404 / 292
Регистрация: 24.09.2013
Сообщений: 2,822
Записей в блоге: 1
21.12.2018, 20:42 2
Есть сортировка по возрастанию, т.е это касается всех элементов.
А что означает возрастание первых элементов.?
А для остальных?
Поясните, чтобы понять этот высокий смысл

Добавлено через 8 часов 16 минут
Ниже код для Вашей задачи. Код проверен. На форме установите 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
Forms Code
{  
        private void button1_Click(object sender, EventArgs e)
        {
             int n =0, t;
            dataGridView1.RowCount =6;
            dataGridView1.ColumnCount =5;
            dataGridView2.RowCount = 6;
            dataGridView2.ColumnCount = 5;
            int[] ari = new int[6];
            Random rnd = new Random();
            for (int i = 0; i < 6; i++)
            {
                for (int j = 0; j < 5; j++)
                {
                    n = rnd.Next(-30, 30);
                    dataGridView1.Rows[i].Cells[j].Value = n;
                }
            }
             t = 0;
             do
             {
                 for (int i = 0; i < 6; i++)
                 {
                     ari[i] = int.Parse(dataGridView1.Rows[i].Cells[t].Value.ToString());
                 }
                 for (int i = 0; i < 6; i++)  
                 {   
                    Array.Sort(ari, (a, b) => a.CompareTo(b)); //Сортировка по возрастанию.  ;
                     dataGridView2.Rows[i].Cells[t].Value = ari[i];
                 }
                 t++;
             } while (t < 5);
        }
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.12.2018, 20:42

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

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

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

Отсортировать столбцы матрицы по возрастанию
есть файл .txt в нем записана матрица 10 2 6 5 5 11 1 6 5 4 8 4 7 2 3 4 4 7 5 1 6 4 4 4 2...


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

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

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