Определить минимальный и максимальный элемент массива - 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());