Напишите программу, которая выделяет в другой массив все элементы исходного массива, которые встречаются более одного раза. Входные данные Первая строка содержит размер массива N . Во второй строке через пробел задаются N чисел...
Напишите программу, которая выделяет в другой массив все элементы исходного массива, которые встречаются более одного раза. Входные данные Первая строка содержит размер массива N . Во второй строке через пробел задаются N чисел – элементы массива. Гарантируется, что 0 < N ≤ 10000 .
Выходные данные Программа должна вывести содержимое полученного массива: все элементы исходного массива, которые встречаются более одного раза, в том же порядке. Если таких нет, нужно вывести число 0.
Примеры
входные данные 6 4 1 2 1 2 3
выходные данные 1 2
помогите пожалуйста,не понимаю как делать
Ответ(ы) на вопрос:
Заведём ещё один массив и будем в него записывать, правда ли, что в массиве есть элементы, равные данному, и текущий элемент - первый из них. Затем выведем все элементы, для которых это оказалось правдой.
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.
Не нашли ответ?
Похожие вопросы