Переставляя строки и столбцы матрицы, добиться того, чтобы наибольший элемент оказался в левом верхнем углу - C# (178844)

Узнай цену своей работы

Формулировка задачи:

Дана вещественная матрица размером (N x M). Переставляя ее строки и столбцы, добиться того, чтобы наибольший элемент (или один из них) оказался в левом верхнем углу.

Решение задачи: «Переставляя строки и столбцы матрицы, добиться того, чтобы наибольший элемент оказался в левом верхнем углу»

textual
Листинг программы
  1. static class Program
  2.     {
  3.         public static void FindMax(int[,] array,int m, int n, ref int max,ref int intLine, ref int intColumn)
  4.         {
  5.             int tempMax = 0;
  6.             int tempLine = 0, tempColumn = 0;
  7.             for (int i = 0; i < m; i++)
  8.                 for (int j = 0; j < n; j ++)
  9.                 {
  10.                     if (array[i, j] > tempMax)
  11.                     {
  12.                         tempMax = array[i, j];
  13.                         tempLine = i;
  14.                         tempColumn = j;
  15.                     }
  16.                 }
  17.             max = tempMax; intLine = tempLine; intColumn = tempColumn;
  18.         }
  19.         static void Main(string[] args)
  20.         {
  21.             int m = 2, n = 3;
  22.             int[,] intArray = new int[3, 2] { {6,3},{9,8},{5,10}};
  23.             int max = 0; int Line = 0; int Column = 0;
  24.             FindMax(intArray,3,2,ref max,ref Line,ref Column);
  25.  
  26.             while (Line != 0)
  27.             {
  28.                 int[] tempInt = new int[2];
  29.                 for (int i = 0; i < 2; i++)
  30.                     tempInt[i] = intArray[Line - 1, i];
  31.                 for (int i = 0; i < 2; i++)
  32.                     intArray[Line - 1, i] = intArray[Line,i];
  33.                 for (int i = 0; i < 2; i++)
  34.                     intArray[Line, i] = tempInt[i];
  35.                 Line--;
  36.             }
  37.             for (int i = 0; i < 3; i++)
  38.             {
  39.                 for (int j = 0; j < 2; j++)
  40.                     Console.Write(intArray[i, j].ToString() + " ");
  41.                 Console.WriteLine();
  42.             }
  43.             if (intArray[0, 0] != max)
  44.             {
  45.                 int temp = intArray[0, 0];
  46.                 intArray[0, 0] = intArray[0, Column];
  47.                 intArray[0, Column] = temp;
  48.             }
  49.             Console.WriteLine();
  50.             for (int i = 0; i < 3; i++)
  51.             {
  52.                 for (int j = 0; j < 2; j++)
  53.                     Console.Write(intArray[i, j].ToString() + " ");
  54.                 Console.WriteLine();
  55.             }
  56.                 //Console.WriteLine(max.ToString() + " " + Line.ToString() + " " + Column.ToString() + " ");
  57.                 Console.ReadKey();
  58.         }
  59.     }

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


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

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

12   голосов , оценка 4.25 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы