Найти в массиве число, которое повторяется наибольшее количество раз - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

есть много похожих тем, но мне нужно что бы если есть не одно число. которое повторяется не раз тоже выводилось. пример кода, который показывает только одно из:
Листинг программы
  1. const
  2. n = 4;
  3. var
  4. a: array[1..n] of integer;
  5. b: array[0..200] of integer;
  6. i, max, imax: integer;
  7. begin
  8. randomize;
  9. writeln('Масив:');
  10. for i := 1 to n do
  11. begin
  12. a[i] := random(2);
  13. write(a[i]:4);
  14. end;
  15.  
  16. writeln;
  17. for i := 0 to 200 do
  18. b[i] := 0;
  19. for i := 1 to n do
  20. inc(b[a[i]]);
  21. max := 0;
  22. for i := 0 to 200 do
  23. if b[i] > max then
  24. begin
  25. max := b[i];
  26. imax := i;
  27. end;
  28. write('Найчастіше зустрічається : ', imax, '-', max, ' рaзи.');
  29.  
  30. end.
тоесть если значения масива будут:0 0 1 1, то должно вывести что и 1-2 раза и 0-2 раза. надеюсь на Вашу помощь.

Решение задачи: «Найти в массиве число, которое повторяется наибольшее количество раз»

textual
Листинг программы
  1. const nmax=100;
  2.       a1=-5;
  3.       a2=5;
  4. var  a: array[1..nmax] of integer;
  5.      b:array[a1..a2] of integer;
  6.      n,i,max,imax: integer;
  7. begin
  8. randomize;
  9. write('Введите размер массива от 2 до ',nmax,' n=');
  10. readln(n);
  11. writeln('Массив:');
  12. for i:=1 to n do
  13.  begin
  14.   a[i]:=a1+random(a2-a1+1);
  15.   write(a[i]:4);
  16.  end;
  17.  for i:=a1 to a2 do
  18.  b[i]:=0;
  19.  for i:=1 to n do
  20.  inc(b[a[i]]);
  21.  writeln('Повторяющиеся числа');
  22.  max:=0;
  23.  imax:=0;
  24.  for i:=a1 to a2 do
  25.  if b[i]>1 then
  26.   begin
  27.    writeln(i:4,' ',b[i],'рз.');
  28.    if b[i]>max then
  29.     begin
  30.      max:=b[i];
  31.      imax:=i;
  32.     end;
  33.   end;
  34.  writeln('Чаще других встречается число ',imax,' ',max,'рз.')
  35.  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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы