Сортировка двумерного массива - 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);
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д