Напишите программу, которая выделяет в другой массив все элементы исходного массива, которые встречаются более одного раза. входные данные первая строка содержит размер массива n . во второй строке через пробел n чисел – элементы массива. гарантируется, что 0 < n ≤ 10000 . выходные данные программа должна вывести содержимое полученного массива: все элементы исходного массива, которые встречаются более одного раза, в том же порядке. если таких нет, нужно вывести число 0. примеры входные данные 6 4 1 2 1 2 3 выходные данные 1 2 ,не понимаю как делать

муксик муксик    3   13.07.2019 05:10    13

Ответы
askarovavikuly askarovavikuly  07.09.2020 10:59
Заведём ещё один массив и будем в него записывать, правда ли, что в массиве есть элементы, равные данному, и текущий элемент - первый из них. Затем выведем все элементы, для которых это оказалось правдой.

Pascal
var
  i, j, n: integer;
  flag: boolean;
  a: array[1..10000] of integer;
  b: array[1..10000] of boolean;
begin
  read(n);
  for i := 1 to n do
  begin
    read(a[i]);
    b[i] := true;
  end;
  b[n] := false;

  for i := 1 to n - 1 do
    if b[i] then
    begin
      flag := true;
      for j := i + 1 to n do
        if a[i] = a[j] then
        begin
          flag := false;
          b[j] := false;
        end;
        if flag then
          b[i] := false;
    end;
  for i := 1 to n do
    if b[i] then
      write(a[i], ' ');
end.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика