Есть ли в массиве одинаковые элементы
Дан массив целых чисел. Проверить, есть ли в нем одинаковые элементы.
Чтобы проверить каждый элемент массива на уникальность, надо сравнить его с остальными элементами. Так первый элемент следует сравнить со вторым, третьим и так далее до конца. После этого второй элемент сравнивать с третьим, четвертым и так далее. Второй элемент с первым сравнивать не надо, так как они уже сравнивались при оценке уникальности первого элемента. Когда очередь дойдет до предпоследнего элемента, то он сравнивается только с последним. Последний же уже сравнивать не надо. Таким образом, количество итераций внешнего цикла на 1 меньше, чем элементов в массиве. Счетчик этого цикла - это номер элемента, который сравнивается с элементами стоящими после него.
Внутренний цикл перебирает элементы от следующего за исследуемым до последнего. На данном отрезке элементы массива сравниваются с исследуемым элементом. Если какой-то элемент окажется равен исследуемому, значит, что в массиве есть одинаковые значения. Следует вывести соответствующее сообщение и завершить программу, так как дальше уже можно не проверять.
Если программа в процессе выполнения циклов не завершилась, то значит, одинаковых элементов найдено не было. Следует вывести сообщение, что все элементы массива разные.
Программа на языке Паскаль:
const N = 10;
var
arr: array[1..N] of byte;
i, k: byte;
begin
randomize;
for i:=1 to N do begin
arr[i] := random(80);
write(arr[i]:3);
end;
writeln;
for i:=1 to N-1 do
for k:=i+1 to N do
if arr[i] = arr[k] then begin
writeln('Есть одинаковые элементы');
exit;
end;
writeln('Все элементы уникальны');
end.
Примеры выполнения кода:
13 76 31 13 32 18 2 70 76 8
Есть одинаковые элементы
59 11 18 46 25 39 44 10 23 6
Все элементы уникальны