В матрице поменять местами строку и столбец - C#
Формулировка задачи:
Как в квадратной матрице порядка N поменять местами строку и столбец, на пересечении которых стоит максимальный элемент?
Решение задачи: «В матрице поменять местами строку и столбец»
textual
Листинг программы
using System; namespace ConsoleApplication1 { class Program { static void printMatrix(int[,] mx) { for (int i = 0; i < mx.GetLength(0); ++i) { for (int j = 0; j < mx.GetLength(1); ++j) { Console.Write(mx[i, j] + " "); } Console.WriteLine(); } } static void Main(string[] args) { int[,] mx = new int[,] { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 0, 4, 2}, { 3, 4, 5, 6} }; Console.WriteLine("Исходная матрица: "); printMatrix(mx); int maxRow = -1; int maxCol = -1; int maxValue = Int32.MinValue; for (int i = 0; i < mx.GetLength(0); ++i) { for (int j = 0; j < mx.GetLength(1); ++j) { if (mx[i, j] > maxValue) { maxValue = mx[i, j]; maxRow = i; maxCol = j; } } } Console.WriteLine("Минимальный элемент: {0}, позиция: ({1}, {2})", maxValue, maxRow, maxCol); // Преобразования. int[] row = new int[mx.GetLength(1)]; int[] col = new int[mx.GetLength(0)]; for (int i = 0; i < mx.GetLength(0); ++i) { row[i] = mx[maxRow, i]; col[i] = mx[i, maxCol]; } for (int i = 0; i < mx.GetLength(1); ++i) { mx[maxRow, i] = col[i]; mx[i, maxCol] = row[i]; } Console.WriteLine("Преобразованная матрица: "); printMatrix(mx); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д