Определить, какое число в массиве встречается чаще всего.
В программах ниже ищется только первое самое встречаемое число. Если есть другое число, которое встречается с такой же частотой как первое, то оно не определяется.
Будем записывать в переменную num найденный самый встречаемый элемент, а в переменную max_frq — количество раз, которое он встречается.
Будем по-очереди (в цикле) брать элементы массива с первого до предпоследнего и сравнивать его с элементами, стоящими после него. С элементами, стоящими впереди, сравнивать не надо, т.к. если там есть равный ему, то текущий элемент уже был учтен, и количество раз, какое он встречается в массиве, уже находилось. Последний элемент не с чем сравнивать, поэтому цикл идет до предпоследнего элемента.
В теле цикла переменной frq присваивается значение 1, т.е. вначале предполагается, что текущий элемент встречается 1 раз. Далее перебираются элементы, стоящие после текущего. Если значения совпадают, то переменная frq увеличивается на 1. После того, как посчитано количество раз, какое встречается элемент, переменная frq сравнивается с max_frq. Если frq больше, то перезаписываются значения max_frq и num.
Pascal
найти наиболее часто встречающееся число в массиве паскаль
const N = 15;
var
arr: array[1..N] of byte;
i, k, num, frq , max_frq: byte;
begin
randomize;
for i:=1 to N do begin
arr[i] := random(20);
write(arr[i],' ');
end;
writeln;
num := arr[1];
max_frq := 1;
for i:=1 to N-1 do begin
frq := 1;
for k:=i+1 to N do
if arr[i] = arr[k] then
frq := frq + 1;
if frq > max_frq then begin
max_frq := frq;
num := arr[i];
end;
end;
if max_frq > 1 then
writeln(max_frq, ' раз(а) встречается число ', num)
else
writeln('Все элементы уникальны!');
end.
5 13 2 7 3 4 3 4 9 5 1 5 7 12 18
3 раз(а) встречается число 5
Язык Си
найти наиболее часто встречающееся число в массиве c++
#include < stdio.h>
#define N 15
main() {
short arr[N];
short i, k, num, frq, max_frq;
srand(time(NULL));
for (i=0; i< N; i++) {
arr[i] = rand() % 20;
printf("%d ", arr[i]);
}
printf("\n");
num = arr[0];
max_frq = 1;
for (i=0; i < N-1; i++) {
frq = 1;
for (k = i+1; k< N; k++)
if (arr[i] == arr[k])
frq += 1;
if (frq > max_frq) {
max_frq = frq;
num = arr[i];
}
}
if (max_frq > 1)
printf("%d раз(а) встречается число %d\n", max_frq,num);
else
printf("Все элементы уникальны!\n");
}
7 18 13 15 6 16 12 5 10 15 10 2 10 7 2
3 раз(а) встречается число 10
Python
найти самый часто встречающийся элемент из массива python
from random import random
N = 15
arr = [0] * N
for i in range(N):
arr[i] = int(random() * 20)
print(arr)
num = arr[0]
max_frq = 1
for i in range(N-1):
frq = 1
for k in range(i+1,N):
if arr[i] == arr[k]:
frq += 1
if frq > max_frq:
max_frq = frq
num = arr[i]
if max_frq > 1:
print(max_frq, 'раз(а) встречается число', num)
else:
print('Все элементы уникальны')
[7, 18, 16, 18, 1, 11, 2, 16, 2, 4, 7, 7, 10, 17, 2]
3 раз(а) встречается число 7
КуМир
алг самое частое число
нач
цел N = 15
целтаб arr[1:N]
цел i, k, num, frq, max_frq
нц для i от 1 до N
arr[i] := irand(0,19)
вывод arr[i], " "
кц
вывод нс
num := arr[1]
max_frq := 1
нц для i от 1 до N-1
frq := 1
нц для k от i+1 до N
если arr[i] = arr[k] то
frq := frq + 1
все
кц
если frq > max_frq то
max_frq := frq
num := arr[i]
все
кц
если max_frq > 1 то
вывод max_frq," раз(а) встречается число ",num
иначе
вывод "Все элементы уникальны"
все
кон
1 10 11 0 11 9 18 13 6 18 0 12 18 16 14
3 раз(а) встречается число 18
Basic-256
N = 15
dim arr(N)
for i=0 to N-1
arr[i] = int(rand * 20)
print arr[i] + " ";
next i
print
num = arr[0]
max_frq = 1
for i=0 to N-2
frq = 1
for k=i+1 to N-1
if arr[i] = arr[k] then
frq = frq + 1
endif
next k
if frq > max_frq then
max_frq = frq
num = arr[i]
endif
next i
print max_frq + " раз(а) встречается число " + num
5 13 19 7 13 17 18 4 10 15 15 18 15 7 14
3 раз(а) встречается число 15