Поиск максимального элемента в строке и минимального в столбце - C#
Формулировка задачи:
Дана таблица a, состоящая из n строк и n столбцов. Требуется определить, есть ли в таблице такой элемент a[i, j], который был бы максимален в i-й строке и минимален в j-м столбце. Если такой элемент есть в таблице, то вывести его координаты. Если таких элементов несколько, то вывести координаты одного из них.
Есть код на Pascal:
Её необходимо написать в C# по образу и подобию кода Pascal. Она работает, но увы и ах, неверно.
Вот что получилось у меня:
Помогите, пожалуйста, выявить ошибку в коде C#.
Листинг программы
- const n = 4;
- a: array [1..n, 1..n] of
- integer = ((10,9,80,7),(11,8,20,11), (9,7,40,1),(13,3,20,6));
- var i, j, k, st, min : integer;
- flag: boolean;
- begin
- i := 1;
- flag := false;
- while (i <= n) and not flag do
- begin
- st := 1;
- for j := 2 to n do
- if a[i, j] > a[i, st] then st := j;
- {нашли максимум по i-й строке, запомним
- его в переменной min}
- min := a[i,st];
- flag := true;
- k := 0;
- repeat
- inc(k);
- flag := flag and (a[k, st] >= min);
- {flag будет равен true, если найденный
- максимальный элемент является минимальным в
- столбце st}
- until (k >= n) or not flag;
- inc(i)
- end;
- if flag then writeln(i-1:3, st:3)
- else writeln('no');
- readln
- end.
Листинг программы
- using System;
- namespace задача
- {
- class Program
- {
- static void Main()
- {
- int n = 5, st = 0, min, k;
- int[,] a = {
- { 10, 9, 80, 7 },
- { 11, 8, 20, 11 },
- { 9, 7, 40, 1 },
- { 13, 3, 20, 6 }
- };
- bool flag;
- int i = 1;
- flag = false;
- while ((i <= n) && (flag == false))
- {
- st = 1;
- for (int j = 1; j < n - 1; j++)
- if (a[i, j] > a[i, st])
- st = j;//нашли максимум по i-й строке, запомним его в переменной min
- min = a[i, st];
- flag = true;
- k = 0;
- do
- {
- k++;
- flag = flag && (a[k, st] >= min);
- }
- while ((k >= n) || (flag != true));
- i++;
- }
- if (flag)
- Console.WriteLine((i-1) + " " + st);
- else
- Console.WriteLine("no");
- }
- }
- }
Решение задачи: «Поиск максимального элемента в строке и минимального в столбце»
textual
Листинг программы
- n = 4
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д