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

Упорядочить столбцы матрицы по возрастанию первой строки

01.04.2013, 00:14. Просмотров 1793. Ответов 5
Метки нет (Все метки)


Заполнить массив из (MxN) элементов,случайными целыми числами в диапазоне (10:100).Упорядочить столбцы матрицы по возрастанию первой строки.Как должна выглядеть программа показано на фото задание 3.2.Заранее спасибо ))
Упорядочить столбцы матрицы по возрастанию первой строки
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.04.2013, 00:14
Ответы с готовыми решениями:

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

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

Упорядочить матрицу по возрастанию первой строки
Доброе время суток! Помогите, пожалуйста, разобраться с задачей. На форуме не нашел решения...

Упорядочить по возрастанию элементы каждой строки матрицы
1. Задумано некоторое число х (х < 100). Известны числа k, т, п — остатки от деления этого...

5
FTL
01.04.2013, 01:09 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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
using System;
 
namespace ConsoleApplication1
{
    class Program
    {
 
        public static void FillArray(ref int[,] array)
        {
            var random = new Random();
 
            const int min = 10;
            const int max = 100;
 
            for (var i = 0; i < array.GetLength(0); i++)
            {
                for (var j = 0; j < array.GetLength(1); j++)
                    array[i, j] = random.Next(min, max);
            }
        }
 
        public static void PrintArray(string title, int[,] array)
        {
 
            Console.WriteLine(title);
            for (var i = 0; i < array.GetLength(0); i++)
            {
                for(var j = 0; j < array.GetLength(1); j++)
                    Console.Write(array[i, j] + "   ");
                Console.WriteLine(Environment.NewLine);
            }
        }
 
        public static void SortArray(ref int[,] array)
        {
           var index = 0;
 
           for (var i = 0; i < array.GetLength(0); i++)
           {
               var arrayToSort = new int[array.GetLength(1)];
 
               for (var j = 0; j < array.GetLength(1); j++)
                   arrayToSort.SetValue(array[i, j], index++);
 
               Array.Sort(arrayToSort);
               for (var k = 0; k < arrayToSort.Length ; k++)
                   array[i, k] = arrayToSort[k];
               index = 0;
 
           }
 
        }
 
        static void Main()
        {
 
            const int w = 10;
            const int h = 6;
 
            var array = new int[h, w];
 
            FillArray(ref array);
            PrintArray("Сгенерированный массив", array);
            SortArray(ref array);
            PrintArray("Отсортированный массив", array);
 
            Console.ReadKey();
 
        }
    }
}
Заблокирован
01.04.2013, 01:22 3
Добавлено через 11 минут
C#
1
2
3
4
5
//Исходная матрица
            int[,] A = new int[int.Parse(Console.ReadLine()), int.Parse(Console.ReadLine())];
            for (int i = 0; i < A.GetLength(0); i++)
                for (int j = 0; j < A.GetLength(1); j++)
                    A[i, j] = int.Parse(Console.ReadLine());
C#
1
2
3
4
5
6
7
8
9
10
//Решение
            int[,] B = new int[A.GetLength(0), A.GetLength(1)];
            var resultColumns = A.Cast<int>().Take(A.GetLength(1)).Select((elem, index) => new { value = elem, Index = index }).OrderBy(elem => elem.value).ToArray();
            int ind = 0;
            foreach (var column in resultColumns)
            {
                for (int j = 0; j < A.GetLength(0); j++)
                    B[j, ind] = A[j, column.Index];
                ind++;
            };
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//Вывод
            Console.WriteLine("Исходная матрица");
            for (int i = 0; i < A.GetLength(0); i++)
            {
                for (int j = 0; j < A.GetLength(1); j++)
                    Console.Write(A[i, j] + " ");
                Console.WriteLine("");
            }
            Console.WriteLine();
            Console.WriteLine("Результирующая матрица");
            for (int i = 0; i < B.GetLength(0); i++)
            {
                for (int j = 0; j < B.GetLength(1); j++)
                    Console.Write(B[i, j] + " ");
                Console.WriteLine("");
            }
            Console.ReadKey();
1
0 / 0 / 0
Регистрация: 13.03.2013
Сообщений: 17
01.04.2013, 01:37  [ТС] 4
Запутанный код.


Мне надо что-то более проще.Кину свой код может подскажите что в нем можно поменять чтоб решить эту задачку.

Добавлено через 6 минут
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
namespace ConsoleApplication65
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("Введите количество строк: ");
            int M = Convert.ToInt32(Console.ReadLine());//М-Строка
            Console.Write("Введите количество столбцов: ");
            int N = Convert.ToInt32(Console.ReadLine());//N-Столбец 
            int[,] mass = new int[M,N];//Двумерный массив (M x N)элементов
            Random VBR = new Random();//VBR-Великий беларуский рандом
            Console.WriteLine();
            Console.WriteLine("Сгенерированный массив");
            Console.WriteLine();//Пробел между сгенерированным массивом и отсортированным массивом
            for (int i = 0; i < M; i++)//Цикл заполняющий массив случайными числами в диапазоне (10..100)
            {
                for (int j = 0; j < N; j++)
                {
                    mass[i, j] = VBR.Next(10,100);
                }
            }
            for (int i = 0; i < mass.GetLength(0); i++)//Цикл выводящий сгенерированный массив на экран
            {
                for (int j = 0; j < mass.GetLength(1); j++)
                {
                    
                    Console.Write("{0}\t", mass[i, j]);
                    
                }
                Console.WriteLine("\n");
            }
            int begin;
            for (int i = 0; i < M; i++)//Цикл сортирующий массив
            {
                for (int j = 0; j < N; j++)
                {
                   for (int k = N - 1; k > j; k--)
                    {
                       if (mass[0, k-1] > mass[0, k])
                           {
                            begin = mass[i, k - 1];
                            mass[i, k - 1] = mass[i, k];
                            mass[i, k] = begin;
                            }
                     
                    }
                  
 
                }
                
            }
            Console.WriteLine("Отсортированный массив");
            Console.WriteLine();
            for (int i = 0; i < mass.GetLength(0); i++)//Цикл выводящий отсортированный массив на экран
            {
                for (int j = 0; j < mass.GetLength(1); j++)
                {
 
                    Console.Write("{0}\t", mass[i,j]);
 
                }
                Console.WriteLine("\n");
            }
            
            Console.ReadKey();
        }
    }
}
Вообщем такой код ))У меня выходить только отсортировать первую строку.
0
0 / 0 / 0
Регистрация: 13.03.2013
Сообщений: 17
01.04.2013, 01:56  [ТС] 6
Цитата Сообщение от loro Посмотреть сообщение
Titoben123, чет знакомая тема..
Я решил еще одну тему создать кинул фотку даже уже код кинул потому что люди предлагают очень сложные кода и мне они не очень понятны т.к я изучаю с# 1 месяц всего )Мне нужно понять что мне изменить в коде чтоб получить нужный результат.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.04.2013, 01:56

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

Упорядочить строки целочисленной прямоугольной матрицы по возрастанию
Здраствуйте уважаемые программисты. Не поможите ли вы мне с решением лабораторной работы на тему...

Упорядочить по возрастанию элементы каждой строки матрицы
Помогите еще с задачей; как упорядочить пл возрастанию элементы каждой строки матрицы

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

Упорядочить строки матрицы по возрастанию количества одинаковых элементов в каждой строке
private void Form1_Load(object sender, EventArgs e) { dataGridView1.RowCount...


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

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

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