(二维数组鞍点)给出一个N (N < l00)行M(M <100)列的二维数组,每个数组元素都是整数,编程寻找该二维数组中的鞍点。所谓二维数组的鞍点是指该位置上的元素值在其所在行上最大,在其所在列上最小。程序要求输出鞍点的位置和元素值。如果找不到,则输出“Not exist” 。例如下面输入第1行为二维数组的行数N 和列数M ,接下来N 行 M 列
表示二维数组,输出表示鞍点位置在数组的第1 行第4 列,元素值为4。同一行中相邻两个数字中间有一个空格,行末没有空格。
输入样例:
3 4
1 2 3 4
8 7 6 5
9 10 11 12
输出样例
1 4 4
ar
n, m, i, j: longint;
a: array[1..100, 1..100] of longint;
row_max: array[1..100] of longint;
//row_max [i]存储二维数组第i行中最大元素的列号
function check(i, j: longint): boolean;
//函数check检査在第j 列中是否元素a [i][j]最小
var
k: longint;
flag: boolean;
begin
flag:= true;
for k:= 1 to n do
if a[i,j]>a[k,j] then
begin
flag := false;
break;
end;
check := flag;
end;
begin
readln(n, m);
for i := 1 to n do
for j := 1 to m do
read(a [i][j]);
for i := 1 to n do
begin
row_max[i]:=a[i,1] ;
for j:=2 to n do
if a[i][j] > a[i][row_max[i]] then
a[i][row_max[i]]:= j ;
if check ( i,row_max[i] ) =true then
begin
writeln(i,' ',row_max[i],' ', a[i,row_max[i]] );
halt ;
end;
end;
writeln('Not exist');
end.