Найти в массиве число, которое повторяется наибольшее количество раз - Pascal ABC
Формулировка задачи:
есть много похожих тем, но мне нужно что бы если есть не одно число. которое повторяется не раз тоже выводилось.
пример кода, который показывает только одно из:
тоесть если значения масива будут:0 0 1 1, то должно вывести что и 1-2 раза и 0-2 раза.
надеюсь на Вашу помощь.
Листинг программы
- const
- n = 4;
- var
- a: array[1..n] of integer;
- b: array[0..200] of integer;
- i, max, imax: integer;
- begin
- randomize;
- writeln('Масив:');
- for i := 1 to n do
- begin
- a[i] := random(2);
- write(a[i]:4);
- end;
- writeln;
- for i := 0 to 200 do
- b[i] := 0;
- for i := 1 to n do
- inc(b[a[i]]);
- max := 0;
- for i := 0 to 200 do
- if b[i] > max then
- begin
- max := b[i];
- imax := i;
- end;
- write('Найчастіше зустрічається : ', imax, '-', max, ' рaзи.');
- end.
Решение задачи: «Найти в массиве число, которое повторяется наибольшее количество раз»
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] и слово
- Выводится сообщение с номером и значением наиболее часто встречающегося числа.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д