Помощь - Поиск - Пользователи - Календарь
Полная версия: одномерные массивы
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Makcим
Никак не разберусь с этой задачей. Помогите пожалуйста!!! unsure.gif
Дан массив x целых чисел. Вывести в порядке возрастания все числа, стоящие на четных местах и встречающиеся более двух раз.
klem4
Вот как-то так:

const
  n = 12;

type
  TArray = array [1..n] of Integer;
  TIdx = array [1..n div 2] of Integer;        
...
procedure Sort(var arr: TArray);
var
  idx: TIdx;
  i, j, count, P, T: Integer;
begin

  i := 2;
  P := 0;

  while (i <= n) do begin
    count := 0;
    j := 1;
    while (j <= n) and (count < 2) do begin
      if (i <> j) and (arr[i] = arr[j]) then inc(count);
      inc(j);
    end;
    if count >= 2 then begin
      inc(P);
      idx[P] := i;
    end;
    inc(i, 2);
  end;

  for i := P downto 2 do
   for j := 1 to i - 1 do
    if arr[idx[j]] > arr[idx[j + 1]] then begin
      T := arr[idx[j]];
      arr[idx[j]] := arr[idx[j + 1]];
      arr[idx[j + 1]] := T;
    end;

end;
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.