Отсортировать массив и вывести элементы массива, которые встречаются ровно K раз - Pascal
Формулировка задачи:
Напишите программу, которая сортирует массив и выводит все элементы массива, которые встречаются ровно K раз.
Входные данные
Первая строка содержит размер массива N . Во второй строке через пробел задаются N чисел – элементы массива. Гарантируется, что 0 < N ≤ 10000 . В третьей строке записано натуральное число K .
Выходные данные
Программа должна вывести все элементы массива, которые встречаются ровно K раз, в порядке возрастания, разделив их пробелами. Если таких элементов нет, программа должна вывести число 0.
Примеры
входные данные
6
1 2 1 2 1 3
2
выходные данные
2
Решение задачи: «Отсортировать массив и вывести элементы массива, которые встречаются ровно K раз»
textual
Листинг программы
- var
- n, k, i, j, t: integer;
- a: array[1..10001] of integer;
- f: boolean;
- begin
- read(n);
- for i := 1 to n do read(a[i]);
- read(k);
- for i := 1 to n - 1 do
- for j := i + 1 to n do
- if a[i] > a[j] then
- begin
- t := a[i];
- a[i] := a[j];
- a[j] := t;
- end;
- i := 1;
- f := false;
- repeat
- j := i + 1;
- while (a[i] = a[j]) and (j <= n) do inc(j);
- if j - i = k then
- begin
- writeln(a[i]);
- f := true;
- end;
- i := j;
- until j > n;
- if not f then write(0)
- end.
Объяснение кода листинга программы
В данном коде происходит следующее:
- Создаются переменные n, k, i, j и t, которые будут использоваться для сортировки и подсчета количества повторений элементов массива.
- Чтение значений переменных n и k.
- Чтение значений элементов массива a от 1 до n.
- Выполнение сортировки массива a методом
сортировка вставками
. Для этого используется вложенный цикл, который проходит по всем элементам массива от i = 1 до n-1 и сравнивает текущий элемент с каждым следующим элементом. Если текущий элемент больше следующего, то они меняются местами. Этот процесс повторяется до тех пор, пока все элементы не будут отсортированы. - Инициализация переменной i = 1 и f = false.
- Запуск цикла repeat, который будет выполняться до тех пор, пока не будет найдено k-ое повторение элемента в массиве.
- Внутри цикла повторяется итерация по массиву от i = 1 до n, где каждый элемент сравнивается с текущим элементом. Если элементы равны и j <= n, то увеличивается значение j на 1. Если j - i = k, то выводится значение a[i], и переменная f устанавливается в true.
- После завершения внутреннего цикла, переменная i устанавливается равной j, и цикл повторяется до тех пор, пока j > n.
- Если в конце цикла не было найдено k-ое повторение элемента, то выводится ноль. Таким образом, данный код выполняет сортировку массива и выводит элементы, которые встречаются ровно k раз.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д