Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
stler
0 / 0 / 0
Регистрация: 19.10.2013
Сообщений: 30
#1

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

30.12.2013, 18:57. Просмотров 841. Ответов 3
Метки нет (Все метки)

В матрице размера 7 × 5 переставить строки таким образом, чтобы минимальные элементы строк следовали в порядке убывания
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.12.2013, 18:57
Ответы с готовыми решениями:

Упорядочить строки матрицы так, чтобы их минимальные элементы образовывали убывающую последовательность
Нуждаюсь в совете мудрых . . . 4)Дана матрица M*N. Упорядочить её строки так, чтобы их...

Переставить строки и столбцы так, чтобы все отрицательные элементы расположились на главной диагонали матрицы
Помогите пожалуйста: Задана вещественная матрица размером n*m. Считая, что в каждой строке и...

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

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

Преобразовать массив таким образом, чтобы сначала располагались все положительные элементы, а потом - все отрицательные
Преобразовать массив таким образом, чтобы сначала располагались все положительные элементы, а потом...

3
Ev_Hyper
Заблокирован
30.12.2013, 19:27 #2
Не совсем понял задание. Допустим, есть матрица:
3 4 6 8 10 0 2
2 5 8 9 14 6 25
7 2 3 16 4 5 2
5 1 7 8 2 2 7
4 7 6 9 0 2 1

Что должно получится в результате?
1
vialet
57 / 57 / 11
Регистрация: 04.03.2010
Сообщений: 244
30.12.2013, 20:24 #3
stler, если я вас правильно понял, то вот на скорую руку))
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
using System;
using System.Collections.Generic;
using System.Linq;
 
namespace SortedRowMatrixAscending
{
    internal sealed class GeneratorMartixSevenOnFive
    {
        public int[,] Matrix {  get { return GetMatrix(); } }
        private static readonly Random generator;
        private const int rowSize = 7;
        private const int columnSize = 5;
        public int RowSize { get { return rowSize; } }
        public int ColumnSize { get { return columnSize; } }
        static GeneratorMartixSevenOnFive()
        {
            generator = new Random();
        }
        private static int[,] GetMatrix()
        {
            var matrix = new int[rowSize, columnSize];
            for (var i = 0; i < rowSize; i++)
                for (var j = 0; j < columnSize; j++)
                    matrix[i, j] = generator.Next(10);
            return matrix;
        }
    }
    public static class MatrixHelper
    {
        public static List<int> GetRowMatrix(this int[,] matrix, int rowIndex, int columnSize)
        {
            var rows = new List<int>();
            for (var i = 0; i < columnSize; i++)
                rows.Add(matrix[rowIndex, i]);
            return rows;
        }
        public static void Write(this int[,] matrix, int rowSize, int columnSize)
        {
            Console.WriteLine();
            for (var i = 0; i < rowSize; i++)
            {
                for (var j = 0; j < columnSize; j++)
                    Console.Write(" {0} ", matrix[i,j]);
                Console.Write(Environment.NewLine);
            }
            Console.WriteLine();
        }
    }
 
    public class ExtremumElement
    {
        public int RowIndex { get; set; }
        public int Value { get; set; }
    }
    class Program
    {
        static void Main()
        {
            var martixGenerator = new GeneratorMartixSevenOnFive();
            var nonSortedMatrix = martixGenerator.Matrix;
 
            nonSortedMatrix.Write(martixGenerator.RowSize, martixGenerator.ColumnSize);
 
            var extremums = new List<ExtremumElement>();
            for (var i = 0; i < martixGenerator.RowSize; i++)
            {
                var rows = nonSortedMatrix.GetRowMatrix(i, martixGenerator.ColumnSize);
                var minElement = rows.Min();
                extremums.Add(new ExtremumElement{RowIndex = i, Value = minElement});
            }
 
            var sortedExtremum = extremums.OrderBy(e => e.Value);
 
            //Console.WriteLine();
            //extremums.ToList().ForEach(e => Console.Write(" {0} {1}", e.Value, e.RowIndex));
            //Console.WriteLine();          
            //sortedExtremum.ToList().ForEach(e => Console.Write(" {0} {1}", e.Value, e.RowIndex));
            //Console.WriteLine();
            
            var sortedMatrix = new int[martixGenerator.RowSize, martixGenerator.ColumnSize];
            var rowIndex = 0;
            foreach (var se in sortedExtremum)
            {
                for (var i = 0; i < martixGenerator.ColumnSize; i++)
                    sortedMatrix[rowIndex, i] = nonSortedMatrix[se.RowIndex, i];
                rowIndex++;
            }
 
            sortedMatrix.Write(martixGenerator.RowSize, martixGenerator.ColumnSize);
        }
    }
}
Добавлено через 4 минуты
извините, лучше это:
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
using System;
using System.Collections.Generic;
using System.Linq;
 
namespace SortedRowMatrixAscending
{
    internal static class GeneratorMartixSevenOnFive
    {
        private static readonly Random generator;
        public const int RowSize = 7;
        public const int ColumnSize = 5;
        static GeneratorMartixSevenOnFive()
        {
            generator = new Random();
        }
        public static int[,] GetMatrix()
        {
            var matrix = new int[RowSize, ColumnSize];
            for (var i = 0; i < RowSize; i++)
                for (var j = 0; j < ColumnSize; j++)
                    matrix[i, j] = generator.Next(10);
            return matrix;
        }
    }
    public static class MatrixHelper
    {
        public static IEnumerable<int> GetNumberRowMatrix(this int[,] matrix, int rowIndex, int columnSize)
        {
            var rows = new List<int>();
            for (var i = 0; i < columnSize; i++)
                rows.Add(matrix[rowIndex, i]);
            return rows;
        }
        public static void Write(this int[,] matrix, int rowSize, int columnSize)
        {
            Console.WriteLine();
            for (var i = 0; i < rowSize; i++)
            {
                for (var j = 0; j < columnSize; j++)
                    Console.Write(" {0} ", matrix[i,j]);
                Console.Write(Environment.NewLine);
            }
            Console.WriteLine();
        }
    }
 
    public class ExtremumElement
    {
        public int RowIndex { get; set; }
        public int Value { get; set; }
    }
    class Program
    {
        static void Main()
        {
            var nonSortedMatrix = GeneratorMartixSevenOnFive.GetMatrix();
            nonSortedMatrix.Write(GeneratorMartixSevenOnFive.RowSize, GeneratorMartixSevenOnFive.ColumnSize);
 
            var extremums = new List<ExtremumElement>();
            for (var i = 0; i < GeneratorMartixSevenOnFive.RowSize; i++)
            {
                var rows = nonSortedMatrix.GetNumberRowMatrix(i, GeneratorMartixSevenOnFive.ColumnSize);
                var minElement = rows.Min();
                extremums.Add(new ExtremumElement{RowIndex = i, Value = minElement});
            }
 
            var sortedExtremum = extremums.OrderBy(e => e.Value);
 
            var sortedMatrix = new int[GeneratorMartixSevenOnFive.RowSize, GeneratorMartixSevenOnFive.ColumnSize];
            var rowIndex = 0;
            foreach (var se in sortedExtremum)
            {
                for (var i = 0; i < GeneratorMartixSevenOnFive.ColumnSize; i++)
                    sortedMatrix[rowIndex, i] = nonSortedMatrix[se.RowIndex, i];
                rowIndex++;
            }
            sortedMatrix.Write(GeneratorMartixSevenOnFive.RowSize, GeneratorMartixSevenOnFive.ColumnSize);
        }
    }
}
1
stler
0 / 0 / 0
Регистрация: 19.10.2013
Сообщений: 30
31.12.2013, 00:19  [ТС] #4
Цитата Сообщение от Ev_Hyper Посмотреть сообщение
Не совсем понял задание. Допустим, есть матрица:
3 4 6 8 10 0 2
2 5 8 9 14 6 25
7 2 3 16 4 5 2
5 1 7 8 2 2 7
4 7 6 9 0 2 1

Что должно получится в результате?
должно получится
3 4 6 8 10 0 2
4 7 6 9 0 2 1
5 1 7 8 2 2 7
2 5 8 9 14 6 25
7 2 3 1 6 4 5 2
и можно ее решить грубо, то есть без методов, а только с помощью циклов и перестановок
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.12.2013, 00:19

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

Упорядочить строки булевой матрицы в порядке убывания весов
Помогите пожалуйста с программкой. Нужно написать в консоли C#. Упорядочить строки булевой матрицы...

Требуется расположить неотрицательные элементы матрицы в порядке убывания. Использовать алгоритм вставки
Дан массив x1, x2,..., x20. Требуется расположить неотрицательные элементы в порядке убывания....


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

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

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