一道pascal数组题

来源:百度知道 编辑:UC知道 时间:2024/05/29 18:55:48
给定一个n个元素的整型数组,找出该数组出现次数最多的元素,元素的个数n及n个元素均由键盘输入。
如输入:8
89 87 67 87 99 67 65 87
则输出:87

var hash,a:array [0..40000] of longint;
n,i,num,max,max1:longint;
begin
readln(n);
max:=0;
fillchar(a,sizeof(a),0);
fillchar(hash,sizeof(hash),0);
for i:=1 to n do
begin
read(a[i]);
if a[i]>max then max:=a[i];
end;
readln;
for i:=1 to n do
hash[a[i]]:=hash[a[i]]+1;
max1:=0;
for i:=1 to max do
if hash[i]>max1 then num:=i;
writeln(num);
end.
如果有出现次数都是最多的数,那么只输出一个最小的数,我是按照整型的大小开的数组,如果要再大,就自己再开