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