Найти индексы таких равных элементов массива, которых в массиве ровно два - Pascal ABC
Формулировка задачи:
Задачка с виду не сложная, а загнала в тупик
Дан одномерный целочисленный массив A(N). Известно, что среди его элементов
два и только два
равны между собой. Напечатать их индексы.Решение задачи: «Найти индексы таких равных элементов массива, которых в массиве ровно два»
textual
Листинг программы
Var a:array [1..100] of integer; n,i,j:integer; b:boolean; Begin write('Введите N: '); readln(n); For i:=1 to n do begin write('A[',i,']='); readln(a[i]); end; For i:=1 to n do write(a[i],' '); writeln; b:=true; i:=1; j:=1; while b do begin if j<n then j:=j+1 else begin i:=i+1; j:=i+1; end; if a[i]=a[j] then b:=false; end; writeln('Индексы одинаковых элементов: ',i,', ',j); End.
Объяснение кода листинга программы
В данном коде объявлены следующие переменные:
- a: массив целых чисел размером от 1 до 100.
- n: переменная для хранения числа элементов в массиве.
- i, j: переменные для внутреннего цикла.
- b: логическая переменная, которая указывает на то, что текущие элементы массива равны.
Цель программы - найти индексы таких равных элементов массива, которых в массиве ровно два. Для этого используется цикл while, который выполняется до тех пор, пока не будет найдено два равных элемента.
Внутри цикла выполняются следующие действия:
- Выводится запрос на ввод числа элементов в массиве.
- Для каждого элемента массива (от 1 до n) выводится его значение.
- Если текущие элементы равны, то переменная b устанавливается в false, иначе в true.
- Если b равно false, то переменные i и j сдвигаются так, чтобы текущие элементы были на одной позиции.
- Если a[i] равно a[j], то b устанавливается в false. После выполнения цикла выводится сообщение с индексами найденных равных элементов.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д