Заведём ещё один массив и будем в него записывать, правда ли, что в массиве есть элементы, равные данному, и текущий элемент - первый из них. Затем выведем все элементы, для которых это оказалось правдой.
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.
<span>Программа восстанавливает данные жестких и внешних дисков, а также любых других устройств под управлением файловых систем FAT, NTFS. Утилита объединяет комплекс алгоритмов, восстанавливающих имя, атрибуты, содержимое файла и оригинальную структуру каталогов диска.</span><span>Кроме существующих, утилита находит все ранее созданные разделы диска и выводит их пользователю для дальнейшего анализа и поиска удаленной информации. Поддерживая FAT16, FAT32 и NTFS, используемые в Windows, программа исправляет любые ошибки логической структуры жесткого диска и возвращает его содержимое быстрее, чем вы досчитаете до трех.</span>
Решение задачи показано в прилагаемом файле.
<h3>PascalABC.NET 3.4.2, сборка 1864 от 11.11.2018</h3><h3>Внимание! Если программа не работает, обновите версию!</h3>
begin
var a := Arr(3.5, 4.2, 5.7, 6.3, 4.5, 7.1, 3.3);
Writeln('a) ', a.Sum);
Writeln('б) ', a.Where(t -> t > 5).Sum);
Writeln('в) ', a.Max);
Writeln('г) ', a.Where(t -> t < 5).Count);
Writeln('д) ', a.IndexMin + 1)
end.
<h3>a) 34.6</h3><h3>б) 19.1</h3><h3>в) 7.1</h3><h3>г) 4</h3><h3>д) 7</h3>