作业帮 > 综合 > 作业

pascal马鞍数对于一个n*n的数阵(n行n列),如果数阵中某个数在它所在的行上是最小的数,而在它所在的列上是最大的数

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/07/16 12:55:34
pascal马鞍数
对于一个n*n的数阵(n行n列),如果数阵中某个数在它所在的行上是最小的数,而在它所在的列上是最大的数,则称该数为马鞍数,求给出的数阵中的马鞍数.
输入有n+1行,第一行一个整数n,表示n*n数阵.以下n行每行n个数,构成n*n数阵,同一行上每两个数之间用空格隔开.(n a[i,j] then
begin
m:=a[i,j];
l:=j ;
end;
for j:=1 to n do
if m
我看了一下你的程序,发现有许多问题,以下是我改的
var i,j,n,m,l,k,s:longint;
pd,pp:boolean;
a:array[1..100,1..100] of integer;
begin
read(n);
for i:=1 to n do
for j:=1 to n do
read(a[i,j]); //读入
for i:=1 to n do //判断马鞍数
begin
l:=0; m:=a[i,1]; pd:=true; //初始赋值
for j:=2 to n do
if m>a[i,j] then //判断一行最小的数
begin
m:=a[i,j]; l:=j; 赋值
pp:=true; //pp用来看是否进入l赋值
end;
if pp then 当l被赋值
begin
for j:=1 to n do
if m
再问: 你这个不行的 输入 5 5 6 7 8 9 4 5 6 7 8 3 4 5 2 1 2 3 4 9 0 1 2 5 4 8 输出的不是1 1 5
再答: 对不起,搞忘了,我重新修改了一下,因该没问题了(其实你的没错,我看错了,帮你加上判断没有马鞍数的语句了) var i,j,n,m,l,k,s:longint; pd,pp:boolean; a:array[1..100,1..100] of integer; begin read(n); for i:=1 to n do for j:=1 to n do read(a[i,j]); //读入 for i:=1 to n do //判断马鞍数 begin l:=1; m:=a[i,1]; pd:=true; //初始赋值 for j:=2 to n do if m>a[i,j] then //判断一行最小的数 begin m:=a[i,j]; l:=j; //赋值 end begin for j:=1 to n do if m