В матрице поменять местами строку и столбец - 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);
        }
    }
}

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


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

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

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