Найти числа, которые являются одновременно максимальными в своем столбце и минимальными в своей строке - 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();

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


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

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

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