Найти в массиве число, которое повторяется наибольшее количество раз - 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.

Объяснение кода листинга программы

  1. Создаётся константа nmax, которая определяет максимальное значение индекса массива.
  2. Создаются две переменные a1 и a2, которые определяют границы диапазона случайного выбора чисел для заполнения массива.
  3. Создаётся переменная a, которая представляет собой массив для хранения чисел.
  4. Создаются две переменные b и n, которые будут использоваться для подсчёта повторений чисел в массиве.
  5. Используется функция randomize для инициализации генератора случайных чисел.
  6. Пользователю предлагается ввести размер массива от 2 до nmax.
  7. Выводится сообщение с содержимым массива.
  8. Для каждого i от 1 до n выполняется следующая последовательность действий:
    • a[i] присваивается значение a1+random(a2-a1+1), то есть генерируется случайное число в заданном диапазоне.
    • Выводится значение a[i].
    • В массиве b увеличивается значение b[a[i]] на единицу.
  9. Выводится сообщение о повторяющихся числах.
  10. Инициализируются переменные max и imax, которые будут использоваться для хранения максимального и текущего повторно встречающегося числа.
  11. Для каждого i от a1 до a2 выполняется следующая последовательность действий:
    • Если b[i] больше 1, то выводится номер i, значение b[i] и слово раз.
    • Если b[i] больше max, то max присваивается значение b[i], а imax присваивается значение i.
  12. Выводится сообщение с номером и значением наиболее часто встречающегося числа.

Оцени полезность:

15   голосов , оценка 3.8 из 5
Похожие ответы