Определить минимальный и максимальный элемент массива - C#
Формулировка задачи:
Доброго времени суток!, нужна помощь в решении поставленной задачи.
В идеале нужно реализовать принцип минимакса из теории игр. А так задача поставлена след. образом: дана матрица размером nxm, в каждой строке нужно определить минимальный элемент, а в каждом столбце - максимальный, вывести эти элементы на экран. Далее, среди минимальных элементов, которые определились в строках, нужно определить максимальный и вывести его на экран. Аналогично с максимальными элементами столбцов, тут нужно определить минимальный и вывести на экран. В общем, у меня получилось определить минимальные элементы строк, показать их (макс. эл. столбцов тоже). А вот как из минимальных (максимальных) элементов строк (столбцов) определить максимальный (минимальный) и показать его, додуматься не могу. Надеюсь, что кто-то поможет мне. Код представлен ниже. Спасибо!!
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace princip_minmax { class Program { static void Main(string[] args) { int n = 3; int m = 3; Random rand = new Random(); int[,] matrix = new int[n, m]; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { matrix[i, j] = rand.Next(1, 11); Console.Write(matrix[i, j] + "\t"); } Console.WriteLine(); } Console.WriteLine(); Console.WriteLine("Минимальные элементы строк:"); for (int i = 0; i < n; i++) { int ind = 0, min = matrix[i, ind]; for (int j = 0; j < m; j++) { if (matrix[i, j] < min) { ind = j; min = matrix[i, j]; } } Console.WriteLine(min); } Console.Write("\n"); Console.WriteLine("Максимальные элементы столбцов:"); for (int j = 0; j < m; j++) { int ind = 0, max = matrix[ind, j]; for (int i = 0; i < n; i++) { if (matrix[i, j] > max) { ind = i; max = matrix[i, j]; } } Console.WriteLine(max); } } } }
Решение задачи: «Определить минимальный и максимальный элемент массива»
textual
Листинг программы
int n = 3; int m = 3; int [] minm = new int[n]; int[] maxm = new int[m]; Random rand = new Random(); int[,] matrix = new int[n, m]; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { matrix[i, j] = rand.Next(1, 11); Console.Write(matrix[i, j] + "\t"); } Console.WriteLine(); } Console.WriteLine(); Console.WriteLine("Минимальные элементы строк:"); for (int i = 0; i < n; i++) { int ind = 0, min = matrix[i, ind]; for (int j = 0; j < m; j++) { if (matrix[i, j] < min) { ind = j; min = matrix[i, j]; } } Console.WriteLine(min); minm[i] = min; } Console.Write("\n"); Console.WriteLine("Максимальные элементы столбцов:"); for (int j = 0; j < m; j++) { int ind = 0, max = matrix[ind, j]; for (int i = 0; i < n; i++) { if (matrix[i, j] > max) { ind = i; max = matrix[i, j]; } } Console.WriteLine(max); maxm[j] = max; } Console.WriteLine("Минимальный элемент строк = {0}", minm.Min()); Console.WriteLine("Максимальный элемент строк = {0}", minm.Max()); Console.WriteLine("Минимальный элемент столбцов = {0}", maxm.Min()); Console.WriteLine("Максимальный элемент столбцов = {0}", maxm.Max());
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д