Найти max из чисел, встречающиеся в заданной матрице, более одного раза

code: #pascal
const n = 5;
 
var a: array [0..n, 0..n] of integer;
    i, j: integer;
    s: string;
 
function max(list: tstringlist): string;
begin
 for i:=0 to list.Count-2 do
  for j:=i+1 to list.Count-1 do
   if strtoint(list.Strings[i])<strtoint(list.Strings[j]) then
    begin
     s := list.Strings[i];
     list.Strings[i] := list.Strings[j];
     list.Strings[j] := s;
    end;
 result := list.Strings[0];
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var list: tstringlist;
begin
 list := tstringlist.Create;
 randomize;
 
 for i:=0 to n do
  for j:=0 to n do
   a[i, j] := random(10);
 
 for i:=0 to n do
  for j:=0 to n do
   if pos(inttostr(a[i, j]), s)>0 then
    list.Add(inttostr(a[i, j]))
   else s := s + inttostr(a[i, j]) + ' ';
 
 label1.Caption := max(list);
end;

автор: LastSoul

Поделиться:

Похожие статьи: