Найти максимальный элемент матрицы среди минимальных в строках - C#

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

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

3. Дана действительная матрица 5*4, все элементы различны. В каждой строке выбирается элемент с меньшим значением, затем среди этих чисел выбирается наибольшее. Указать индекс найденного элемента. Заранее спасибо!

Решение задачи: «Найти максимальный элемент матрицы среди минимальных в строках»

textual
Листинг программы
  1. using System;
  2. using System.IO;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Diagnostics;
  6. using System.Collections.Generic;
  7. using System.Text.RegularExpressions;
  8.  
  9. namespace csharp_cmd
  10. {
  11.     class Program
  12.     {
  13.         static void Print(int[] matrix)
  14.         {
  15.             for (int i = 0; i < matrix.GetLength(0); ++i)
  16.             {
  17.                 Console.Write(matrix[i] + " ");
  18.             }
  19.             Console.WriteLine();
  20.         }
  21.         static void Print(int[,] matrix)
  22.         {
  23.             for (int i = 0; i < matrix.GetLength(0); ++i)
  24.             {
  25.                 for (int j = 0; j < matrix.GetLength(1); ++j)
  26.                     Console.Write(matrix[i, j] + " ");
  27.                 Console.WriteLine();
  28.             }
  29.             Console.WriteLine();
  30.         }
  31.         static void Fill(int[,] matrix)
  32.         {
  33.             for (int i = 0; i < matrix.GetLength(0); ++i)
  34.             {
  35.                 for (int j = 0; j < matrix.GetLength(1); ++j)
  36.                 {
  37.                     Console.Write("Value for matrix[{0}, {1}]: ", i, j);
  38.                     matrix[i, j] = Convert.ToInt32(Console.ReadLine());
  39.                 }
  40.                 Console.WriteLine();
  41.             }
  42.         }
  43.  
  44.         static void Main()
  45.         {
  46.             int[,] matrix = new int[5, 4]
  47.             {
  48.                 {21,22,23,24 },
  49.                 {10,12,13,14 },
  50.                 {31,32,33,34 },
  51.                 {51,52,53,54 },
  52.                 {41,42,43,44 }
  53.             };
  54.             Shuffle(matrix);
  55.  
  56.             int max = int.MinValue;
  57.             for (int i = 0; i < 5; ++i)
  58.             {
  59.                 int min = int.MaxValue;
  60.                 for (int j = 0; j < 4; ++j)
  61.                 {
  62.                     if (min > matrix[i, j])
  63.                     {
  64.                         min = matrix[i, j];
  65.                     }
  66.                 }
  67.                 if (min > max)
  68.                 {
  69.                     max = min;
  70.                 }
  71.             }
  72.  
  73.             Print(matrix);
  74.             var res = CoordinatesOf(matrix, max);
  75.             Console.WriteLine($"{max} - Максимальный среди минимальных [{res.Item1}, {res.Item2}]");
  76.  
  77.         }
  78.  
  79.         public static void Shuffle<T>(T[,] array)
  80.         {
  81.             Random rnd = new Random();
  82.             int lengthRow = array.GetLength(1);
  83.  
  84.             for (int i = array.Length - 1; i > 0; i--)
  85.             {
  86.                 int i0 = i / lengthRow;
  87.                 int i1 = i % lengthRow;
  88.  
  89.                 int j = rnd.Next(i + 1);
  90.                 int j0 = j / lengthRow;
  91.                 int j1 = j % lengthRow;
  92.  
  93.                 T temp = array[i0, i1];
  94.                 array[i0, i1] = array[j0, j1];
  95.                 array[j0, j1] = temp;
  96.             }
  97.         }
  98.  
  99.         public static Tuple<int, int> CoordinatesOf(int[,] matrix, int value)
  100.         {
  101.             int w = matrix.GetLength(0); // width
  102.             int h = matrix.GetLength(1); // height
  103.  
  104.             for (int x = 0; x < w; ++x)
  105.             {
  106.                 for (int y = 0; y < h; ++y)
  107.                 {
  108.                     if (matrix[x, y].Equals(value))
  109.                         return Tuple.Create(x, y);
  110.                 }
  111.             }
  112.  
  113.             return Tuple.Create(-1, -1);
  114.         }
  115.     }
  116. }

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


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

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

9   голосов , оценка 3.778 из 5

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

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

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