Сортировка двумерного массива - C# (178775)
Формулировка задачи:
Результаты поиска не удовлетворили
Суть программы:
- Пользователь задаёт размерность квадратной матрицы
- Каждому элементу матрицы присваивается случайное значение [0, 10] включительно
- Перебираются элемента каждого отдельного столбца
- Элемент с наибольшим значением ставится на главную диагональ
если там уже есть элемент, меняются местами
- Выводится отсортированная матрица
В переменной
max
сохраняем значение максимального элемента, чтобы потом переопределить в гл.диагоналиpublic void matrize () { Random random = new Random(); int k; string s; int rand; do //retry the request until the user enters the number { Console.Clear(); Console.WriteLine("Enter the size of matrix"); s = Console.ReadLine(); } while (!int.TryParse(s, out k)); int[,] matrix = new int[k, k]; Console.WriteLine("The matrix before edit: "); for (int i = 0; i < k; i++) { for (int j = 0; j < k; j++) { rand = random.Next(0, 10); // Заполняем матрицу случайными числами matrix[i, j] = rand; Console.Write(matrix[i, j] + " "); } Console.WriteLine(); } Console.WriteLine("The matrix after edit: "); #region for (int j = 0; j != k; j++) { for (int i = 0; i != k; i++) { int max = matrix[0, 0]; //задали максимальное значение эл-та if (matrix[i, j] < max) { //если эл-т проверки < максимального проходим дальше } else if (matrix[i, j] > max) { // если элемент проверки больше максимального // максимальному эл-ту передаётся значение эл-та max = matrix[i, j]; matrix[i, j] = max; } else if (matrix[i, j] == max) { //если эл-т проверки равен максимальному matrix[i, j] = max; max = matrix[i, j]; } else { Console.WriteLine("эй, пацан, дичь какая-то происходит!"); } } }
Решение задачи: «Сортировка двумерного массива»
textual
Листинг программы
internal class Matrix { private const int MinValue = 0; private const int MaxValue = 10; private static int[][] GetMatrixWithRandomValues(int size) { var maxtrix = new int[size][]; for (int i = 0; i < maxtrix.Length; i++) { maxtrix[i] = new int[size]; for (int j = 0; j < maxtrix[i].Length; j++) { var random = new Random(); maxtrix[i][j] = random.Next(MinValue, MaxValue); Thread.Sleep(50); } } return maxtrix; } private static int[][] Handle(int[][] oldMatrix) { for (int i = 0; i < oldMatrix.Length; i++) { var max = oldMatrix[i].Max(); if(oldMatrix[i][i] == max) continue; var maxPositionIndex = oldMatrix[i].ToList().IndexOf(max); var val = oldMatrix[i][maxPositionIndex]; oldMatrix[i][maxPositionIndex] = oldMatrix[i][i]; oldMatrix[i][i] = val; } return oldMatrix; } private static void DisplayMatrix(int[][] matrix) { foreach (var t in matrix) { for (int j = 0; j < t.Length; j++) { Console.Write(t[j]); } Console.WriteLine(); } } private static void DisplayStepByStep(int[][] sourceMatrix) { Console.WriteLine("Исходная матрица:"); DisplayMatrix(sourceMatrix); Console.WriteLine("Обработанная матрица:"); DisplayMatrix(Handle(sourceMatrix)); } internal static void DisplayStepByStep() { var matrix = GetMatrixWithRandomValues(10); DisplayStepByStep(matrix); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д