В отсортированном одномерном массиве нужно найти повторяющиеся числа и вывести их на экран - 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
, и затем выводится на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д