假设list是储存的数组:function max(list;num:integer): Integer; var i,j, pre: integer; begin j:=0; pre:=-1; for i:= 1 to list.len do if list[i] = num then if (pre<>-1) and ((i-pre)>j) then j := i-pre; result := j; end;
2楼的应该有点错误吧。 for i:= Low(list) to High(list) do if list[i] = num then begin if(pre = -1) then pre := i else if(i-pre)>j then j := i-pre; end;
var
i,j, pre: integer;
begin
j:=0;
pre:=-1;
for i:= 1 to list.len do
if list[i] = num then
if (pre<>-1) and ((i-pre)>j) then
j := i-pre;
result := j;
end;
for i:= Low(list) to High(list) do
if list[i] = num then
begin
if(pre = -1) then
pre := i
else if(i-pre)>j then
j := i-pre;
end;