Найти в массиве число, которое повторяется наибольшее количество раз - Pascal ABC
Формулировка задачи:
есть много похожих тем, но мне нужно что бы если есть не одно число. которое повторяется не раз тоже выводилось.
пример кода, который показывает только одно из:
тоесть если значения масива будут:0 0 1 1, то должно вывести что и 1-2 раза и 0-2 раза.
надеюсь на Вашу помощь.
Решение задачи: «Найти в массиве число, которое повторяется наибольшее количество раз»
textual
Листинг программы
const nmax=100; a1=-5; a2=5; var a: array[1..nmax] of integer; b:array[a1..a2] of integer; n,i,max,imax: integer; begin randomize; write('Введите размер массива от 2 до ',nmax,' n='); readln(n); writeln('Массив:'); for i:=1 to n do begin a[i]:=a1+random(a2-a1+1); write(a[i]:4); end; for i:=a1 to a2 do b[i]:=0; for i:=1 to n do inc(b[a[i]]); writeln('Повторяющиеся числа'); max:=0; imax:=0; for i:=a1 to a2 do if b[i]>1 then begin writeln(i:4,' ',b[i],'рз.'); if b[i]>max then begin max:=b[i]; imax:=i; end; end; writeln('Чаще других встречается число ',imax,' ',max,'рз.') end.
Объяснение кода листинга программы
- Создаётся константа nmax, которая определяет максимальное значение индекса массива.
- Создаются две переменные a1 и a2, которые определяют границы диапазона случайного выбора чисел для заполнения массива.
- Создаётся переменная a, которая представляет собой массив для хранения чисел.
- Создаются две переменные b и n, которые будут использоваться для подсчёта повторений чисел в массиве.
- Используется функция randomize для инициализации генератора случайных чисел.
- Пользователю предлагается ввести размер массива от 2 до nmax.
- Выводится сообщение с содержимым массива.
- Для каждого i от 1 до n выполняется следующая последовательность действий:
- a[i] присваивается значение a1+random(a2-a1+1), то есть генерируется случайное число в заданном диапазоне.
- Выводится значение a[i].
- В массиве b увеличивается значение b[a[i]] на единицу.
- Выводится сообщение о повторяющихся числах.
- Инициализируются переменные max и imax, которые будут использоваться для хранения максимального и текущего повторно встречающегося числа.
- Для каждого i от a1 до a2 выполняется следующая последовательность действий:
- Если b[i] больше 1, то выводится номер i, значение b[i] и слово
раз
. - Если b[i] больше max, то max присваивается значение b[i], а imax присваивается значение i.
- Если b[i] больше 1, то выводится номер i, значение b[i] и слово
- Выводится сообщение с номером и значением наиболее часто встречающегося числа.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д