Ashly У меня вот что получилось:
Код
const
n = 20;
type
arrType = array[1 .. n] of integer;
{ Эта функция подсчитывает в передаваемом ей массиве Х
количество вхождений числа num... }
function countArr(num: integer;
x: arrType): integer;
var i, count: integer;
begin
count := 0;
for i := 1 to n do
inc( count, byte(x[i] = num) );
countArr := count
end;
{ Эта процедура добавляет элемент num к массиву,
передаваемому в нее как Х (элемент добавляется с индексом index) }
procedure addToArr(var x: arrType;
var index: integer; num: integer);
begin
inc(index);
x[index] := num;
end;
{ Процедура для печати массива X }
procedure Print(x: arrType; n: integer);
var i: integer;
begin
for i := 1 to n do
write(x[i]:4);
writeln
end;
{ константы заданы для удобства отладки }
const
a: arrType =
(1, 1, 3, 3, 4, 5, 6, 7, 7, 7, 8, 5, 4, 4, 3, 3, 2, 0, 9, 2);
b: arrType =
(0, 0, 0, 0, 0, 0, 0, 0, 7, 1, 10, 14, 14, 13, 12, 14, 18, 0, 0, 0);
var
c: arrType;
i, index: integer;
begin
for i := 1 to n do
{если текущий элемент встречается в массиве А не один раз ...}
if countArr(a[i], a) > 1 then
{ ... и он не встречается в массиве В и в массиве С ...}
if (countArr(a[i], b) = 0) and (countArr(a[i], c) = 0)
{ ... то добавить его к массиву С}
then addToArr(c, index, a[i]);
{ печатаем результат - массив С... }
Print(c, index)
end.