Найти максимальный элемент матрицы среди минимальных в строках - 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);
        }
    }
}

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


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

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

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