Найти числа, которые являются одновременно максимальными в своем столбце и минимальными в своей строке - C#

Узнай цену своей работы

Формулировка задачи:

Нужна ваша помощь
Листинг программы
  1. Console.Write("Введите кол-во строк для матрицы: ");
  2. int m = int.Parse(Console.ReadLine());
  3. Console.Write("Введите кол-во столбцов для матрицы: ");
  4. int n = int.Parse(Console.ReadLine());
  5. int[,] a = new int[m, n];
  6. Random rnd = new Random();
  7. for (int i = 0; i < m; i++)
  8. {
  9. for (int j = 0; j < n; j++)
  10. {
  11. a[i, j] = rnd.Next(1, 10);
  12. Console.Write(a[i, j] + " ");
  13. }
  14. Console.WriteLine();
  15. }
  16. int min = a[0,0];
  17. int max = a[0,0];
  18. for (int i = 0; i < m; i++)
  19. for (int j = 0; j < n; j++)
  20. if (a[i, j] < min)
  21. min = a[i, j];
  22. for (int i = 0; i < m; i++)
  23. for (int j = 0; j < n; j++)
  24. if (a[i, j] > max)
  25. max = a[i, j];
  26. if (min > max)
  27. max = min;
  28. Console.WriteLine("максимальный и минимальный: " + max);
  29. Console.ReadLine();
Проверьте пожалуйста правильность написания программы, и как прописать индекс этого элемента?

Решение задачи: «Найти числа, которые являются одновременно максимальными в своем столбце и минимальными в своей строке»

textual
Листинг программы
  1. int m = 3;//кол-во столбцов
  2.             int n = 4; //кол-во строк
  3.             int[,] mat = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 }, { 10, 11, 12 } };
  4.             int[,] minStr = new int[n, 3];
  5.             int[,] maxStol = new int [m, 3];
  6.             //поиск минимальных по строка
  7.             for (int i = 0; i < n; i++)
  8.             {
  9.                 minStr[i, 0] = mat[i, 0]; minStr[i, 1] = i; minStr[i, 2] = 0;
  10.                 for (int j = 1; j < m; j++)
  11.                     if (minStr[i, 0] > mat[i, j])
  12.                     {
  13.                         minStr[i, 0] = mat[i, j]; minStr[i, 1] = i; minStr[i, 2] = j;
  14.                     }                
  15.             }
  16.             //поиск максимальных по столбцам
  17.             for (int i = 0; i < m; i++)
  18.             {
  19.                 maxStol[i,0] = mat[i, 0]; maxStol[i, 1] = i; maxStol[i, 2] = 0;
  20.                 for (int j = 1; j <n; j++)
  21.                     if (maxStol[i, 0] < mat[j, i])
  22.                     {
  23.                         maxStol[i, 0] = mat[j, i]; maxStol[i, 1] = j; maxStol[i, 2] = i;
  24.                     }
  25.             }
  26.             int pr = 0;
  27.             for (int i = 0; i < n; i++)
  28.                 for (int j = 0; j < m; j++)
  29.                     if (maxStol[j, 0] == minStr[i, 0] && maxStol[j, 1] == minStr[i, 1] &&
  30.                         maxStol[j, 1] == minStr[i, 1])
  31.                     {
  32.                         Console.WriteLine("Элемент (" + maxStol[j, 1].ToString() + "," +
  33.                             maxStol[j, 1].ToString() + "): " + maxStol[j, 0].ToString());
  34.                         pr += 1;
  35.                     }
  36.             if (pr == 0) Console.WriteLine("Элементов нет"              
  37.             Console.ReadLine();

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


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

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

15   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы