Найти числа, которые являются одновременно максимальными в своем столбце и минимальными в своей строке - C#
Формулировка задачи:
Нужна ваша помощь
Проверьте пожалуйста правильность написания программы, и как прописать индекс этого элемента?
Console.Write("Введите кол-во строк для матрицы: ");
int m = int.Parse(Console.ReadLine());
Console.Write("Введите кол-во столбцов для матрицы: ");
int n = int.Parse(Console.ReadLine());
int[,] a = new int[m, n];
Random rnd = new Random();
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
a[i, j] = rnd.Next(1, 10);
Console.Write(a[i, j] + " ");
}
Console.WriteLine();
}
int min = a[0,0];
int max = a[0,0];
for (int i = 0; i < m; i++)
for (int j = 0; j < n; j++)
if (a[i, j] < min)
min = a[i, j];
for (int i = 0; i < m; i++)
for (int j = 0; j < n; j++)
if (a[i, j] > max)
max = a[i, j];
if (min > max)
max = min;
Console.WriteLine("максимальный и минимальный: " + max);
Console.ReadLine();Решение задачи: «Найти числа, которые являются одновременно максимальными в своем столбце и минимальными в своей строке»
textual
Листинг программы
int m = 3;//кол-во столбцов
int n = 4; //кол-во строк
int[,] mat = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 }, { 10, 11, 12 } };
int[,] minStr = new int[n, 3];
int[,] maxStol = new int [m, 3];
//поиск минимальных по строка
for (int i = 0; i < n; i++)
{
minStr[i, 0] = mat[i, 0]; minStr[i, 1] = i; minStr[i, 2] = 0;
for (int j = 1; j < m; j++)
if (minStr[i, 0] > mat[i, j])
{
minStr[i, 0] = mat[i, j]; minStr[i, 1] = i; minStr[i, 2] = j;
}
}
//поиск максимальных по столбцам
for (int i = 0; i < m; i++)
{
maxStol[i,0] = mat[i, 0]; maxStol[i, 1] = i; maxStol[i, 2] = 0;
for (int j = 1; j <n; j++)
if (maxStol[i, 0] < mat[j, i])
{
maxStol[i, 0] = mat[j, i]; maxStol[i, 1] = j; maxStol[i, 2] = i;
}
}
int pr = 0;
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
if (maxStol[j, 0] == minStr[i, 0] && maxStol[j, 1] == minStr[i, 1] &&
maxStol[j, 1] == minStr[i, 1])
{
Console.WriteLine("Элемент (" + maxStol[j, 1].ToString() + "," +
maxStol[j, 1].ToString() + "): " + maxStol[j, 0].ToString());
pr += 1;
}
if (pr == 0) Console.WriteLine("Элементов нет")ж
Console.ReadLine();