Найти максимальный элемент матрицы среди минимальных в строках - 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);
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д