Переставить строки и столбцы матрицы так, чтобы минимальный по модулю элемент находился в правом нижнем углу - C#
Формулировка задачи:
Переставить строки и столбцы матрицы местами так, чтобы минимальный по модулю элемент находился в правом нижнем углу.
Решение задачи: «Переставить строки и столбцы матрицы так, чтобы минимальный по модулю элемент находился в правом нижнем углу»
textual
Листинг программы
static void Main(string[] args) { Console.Write("Введите N : "); int N = Convert.ToInt32(Console.ReadLine()); Console.Write("Введите M : "); int M = Convert.ToInt32(Console.ReadLine()); List<List<int>> Array = new List<List<int>>(); Random rand = new Random(); for (int i = 0; i < N; i++) { List<int> arr = new List<int>(); for (int j = 0; j < M; j++) { arr.Add(rand.Next(0, 10)); Console.Write(arr[j] + " "); } Array.Add(arr); Console.WriteLine(); } int MaxCol = 0; int MaxRow = 0; for(int i = 0; i < Array.Count; i++) { for(int j = 0; j < Array[0].Count; j++) { if (Math.Abs(Array[i][j]) < Math.Abs(Array[MaxRow][MaxCol])) { MaxRow = i; MaxCol = j; } } } Console.WriteLine(); for(int i = 0; i < Array[0].Count; i++) { var value = Array[Array.Count - 1][i]; Array[Array.Count - 1][i] = Array[MaxRow][i]; Array[MaxRow][i] = value; } for (int i = 0; i < Array.Count; i++) { var value = Array[i][Array[0].Count - 1]; Array[i][Array[0].Count - 1] = Array[i][MaxCol]; Array[i][MaxCol] = value; } for (int i = 0; i < Array.Count; i++) { for (int j = 0; j < Array[0].Count; j++) { Console.Write(Array[i][j] + " "); } Console.WriteLine(); } Console.ReadKey(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д