В отсортированном одномерном массиве нужно найти повторяющиеся числа и вывести их на экран - PascalABC.NET
Формулировка задачи:
здравствуйте.
при написании программы столкнулась со следующей проблемой.
в отсортированном одномерном массиве нужно найти повторяющиеся числа и вывести их на экран.
условие "if a[i]=a[i-1]" делает не совсем то, что нужно.
например, если срока будет "1 1 1 2 5 9 9 9 9", то в итоге программа выведет две единицы и три девятки.
как поставить условие так, чтобы повторяющиеся числа выводились только по одному разу?
Решение задачи: «В отсортированном одномерном массиве нужно найти повторяющиеся числа и вывести их на экран»
textual
Листинг программы
temp:= a[1]+1; for i:=1 to n-1 do begin if (a[i]=a[i+1]) and (a[i]<>temp) then begin temp:=a[i]; writeln (a[i]; end end;
Объяснение кода листинга программы
В данном коде выполняется поиск повторяющихся чисел в отсортированном массиве и их вывод на экран.
- В первой строке кода переменной
tempприсваивается значениеa[1]+1. Это означает, что в первую очередь будет проверяться следующий элемент массива после первого. - Затем следует цикл
for, который выполняется от 1 доn-1, гдеn- это размер массива. - Внутри цикла происходит проверка: сравниваются текущий и следующий элементы массива (
a[i]иa[i+1]). Если они равны, и при этом не равныtemp, то значениеtempприсваивается текущему элементу массива (a[i]), и затем выводится на экран с помощью функцииwriteln. Таким образом, код проходит по всем элементам массива, начиная со второго, и проверяет, повторяется ли текущий элемент. Если да, и он не равен предыдущему найденному повторяющемуся числу, то он присваивается переменнойtemp, и затем выводится на экран.