Массив с сортировкой - Pascal ABC

Формулировка задачи:

Вывести число в массиве a[1..n], повторяющееся мак- симальное число раз. Если таких чисел несколько, то вывести их все. После этого вывести отсортированный массив. (При реализации алгоритма новый массив не заводить).

Код к задаче: «Массив с сортировкой - Pascal ABC»

textual
const n=15;
type mas=array[1..n] of integer; 
var a:mas;
    i,j,k,kmax:integer;
procedure vv_mas(var x:mas;st:string;f:boolean);
var i:integer;
begin
 writeln(st);
 if f then for i:=1 to n do a[i]:=random(11);
 for i:=1 to n do write(a[i],' ');
 writeln
end; 
begin
 vv_mas(a,'A:',true);
 for i:=1 to n-1 do
  for j:=i to n do
   if a[i]>a[j] 
     then 
      begin
       a[i]:=a[i]+a[j];
       a[j]:=a[i]-a[j];
       a[i]:=a[i]-a[j]
      end;
 i:=1;k:=1;kmax:=k;
 while i<n do
  begin
   if a[i]=a[i+1] 
    then inc(k)
    else if k>kmax 
          then begin kmax:=k; k:=1 end
          else k:=1;
   inc(i);
  end;
 if k>kmax then kmax:=k; 
 write('повторяется максимальное число раз: ');
 i:=1;k:=1;
 while i<n do
  begin
   if a[i]=a[i+1] 
    then inc(k)
    else begin if k=kmax then write(a[i],' ');k:=1 end;
   inc(i)
  end;
 if k=kmax then write(a[i]); 
 writeln; 
 vv_mas(a,'A'':',false); 
end.

7   голосов, оценка 4.286 из 5


СОХРАНИТЬ ССЫЛКУ