pascal 排序 数组记票

来源:百度知道 编辑:UC知道 时间:2024/06/04 11:30:50
【22_2】统计选票(22_2.pas、22_2.in、22_2.out)
选举班长,有6人参加竞选,其编号分别是1,2,3,4,5,6。同学们共有n(n<3×108)人参加投票,每人只能投一票。现请你编程统计6个人的得票情况。(使用数组记票)
[样例]输入20
1 3 5 6 2 1 3 5 6 5 4 3 5 6 2 1 1 4 6 5
输出(5)5 (1)4 (6)4 (3)3 (2)2 (4)2
【22_3】相同数的个数。(22_3.pas、22_3.in、22_3.out)
已知数组a中含有n个元素(n<2×105,数组元素为整型),求a中有多少个最大数?多少个次大数?……多少个互不相同的数?
[样例]输入3 1 4 8 0 0 4 2 9 3
输出9:1 8:1 4:2 3:2 2:1 1:1 0:2

【22_2】:
var
a,num:array[1..6]of longint;
i,n,k:longint;
begin
assign(input,'22_2.in');reset(input);
assign(output,'22_2.out');rewrite(output);
for i:=1 to 6 do
begin
a[i]:=0;num[i]:=i;
end;
readln(n);
for i:=1 to n do
begin
read(k);
a[k]:=a[k]+1;
end;
for i:=1 to 5 do
for k:=i+1 to 6 do
if a[i]<a[k] then
begin
n:=a[i];a[i]:=a[k];a[k]:=n;
n:=num[i];num[i]:=num[k];num[k]:=n;
end
else
if (a[i]=a[k])and(num[i]>num[k]) then
begin
n:=num[i];num[i]:=num[k];num[k]:=n;
end;
for i:=1 to 5 do write('(',num[i],')',a[i],' ');
write('(',num[6],')',a[6]);
close(input);close(output);
end.
【22_3】:
var
a:array[-32767..32768]of longint;
i,max,min,n:longint;
begin
assign(inp