Переставить строки и столбцы матрицы так, чтобы минимальный по модулю элемент находился в правом нижнем углу - 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();
}