Найти максимальный элемент матрицы среди минимальных в строках - C#
Формулировка задачи:
3. Дана действительная матрица 5*4, все элементы различны. В каждой строке выбирается элемент с меньшим значением, затем среди этих чисел выбирается наибольшее. Указать индекс найденного элемента.
Заранее спасибо!
Решение задачи: «Найти максимальный элемент матрицы среди минимальных в строках»
textual
Листинг программы
using System; using System.IO; using System.Linq; using System.Text; using System.Diagnostics; using System.Collections.Generic; using System.Text.RegularExpressions; namespace csharp_cmd { class Program { static void Print(int[] matrix) { for (int i = 0; i < matrix.GetLength(0); ++i) { Console.Write(matrix[i] + " "); } Console.WriteLine(); } static void Print(int[,] matrix) { for (int i = 0; i < matrix.GetLength(0); ++i) { for (int j = 0; j < matrix.GetLength(1); ++j) Console.Write(matrix[i, j] + " "); Console.WriteLine(); } Console.WriteLine(); } static void Fill(int[,] matrix) { for (int i = 0; i < matrix.GetLength(0); ++i) { for (int j = 0; j < matrix.GetLength(1); ++j) { Console.Write("Value for matrix[{0}, {1}]: ", i, j); matrix[i, j] = Convert.ToInt32(Console.ReadLine()); } Console.WriteLine(); } } static void Main() { int[,] matrix = new int[5, 4] { {21,22,23,24 }, {10,12,13,14 }, {31,32,33,34 }, {51,52,53,54 }, {41,42,43,44 } }; Shuffle(matrix); int max = int.MinValue; for (int i = 0; i < 5; ++i) { int min = int.MaxValue; for (int j = 0; j < 4; ++j) { if (min > matrix[i, j]) { min = matrix[i, j]; } } if (min > max) { max = min; } } Print(matrix); var res = CoordinatesOf(matrix, max); Console.WriteLine($"{max} - Максимальный среди минимальных [{res.Item1}, {res.Item2}]"); } public static void Shuffle<T>(T[,] array) { Random rnd = new Random(); int lengthRow = array.GetLength(1); for (int i = array.Length - 1; i > 0; i--) { int i0 = i / lengthRow; int i1 = i % lengthRow; int j = rnd.Next(i + 1); int j0 = j / lengthRow; int j1 = j % lengthRow; T temp = array[i0, i1]; array[i0, i1] = array[j0, j1]; array[j0, j1] = temp; } } public static Tuple<int, int> CoordinatesOf(int[,] matrix, int value) { int w = matrix.GetLength(0); // width int h = matrix.GetLength(1); // height for (int x = 0; x < w; ++x) { for (int y = 0; y < h; ++y) { if (matrix[x, y].Equals(value)) return Tuple.Create(x, y); } } return Tuple.Create(-1, -1); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д