Найти числа, которые являются одновременно максимальными в своем столбце и минимальными в своей строке - 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();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д