Array48. Дан целочисленный массив размера $$N$$. Найти максимальное количество его одинаковых элементов.
Решение(определить какое из чисел повторяется чаще.):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
program Array48; var a:array[1..10] of integer; N,i,i2,Num,an,NumMax:Integer; begin Write('N: '); Readln(N); for i:=1 to N do begin write(i,' :'); readln(a[i]); end; NumMax:=0; an:=0; for i:=1 to N do begin Num:=0; for i2:=1 to N do if a[i]=a[i2] then Num:=Num+1; if Num>NumMax then begin NumMax:=Num; an:=a[i]; end; end; Writeln(an,' - ',NumMax); end. |
Решение (подсчитывает кол-во не уникальных элементов в массиве):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
program Array48; var a:array[1..10] of integer; N,i,i2,Num:Integer; check: Boolean; begin Write('N: '); Readln(N); for i:=1 to N do begin write(i,' :'); readln(a[i]); end; Num:=0; for i:=1 to N do begin check:=False; for i2:=1 to N do if (i<>i2) and (a[i]=a[i2]) then check:=True; if check then inc(Num); end; Writeln(Num); readln; end. |
Задачи из раздела Array можно посмотреть здесь.
Нужно определить какое из чисел повторяется чаще.
добавил решение.
Не эффективный код, долго считает. Лучше сортировать сначала.