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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4 из 5
Похожие ответы