投票问题 pascal

来源:百度知道 编辑:UC知道 时间:2024/05/17 21:48:24
注意:我说的是要排序,按得票数依次输出!PASCAL

内容:

投票问题。竞选时,要求选民在A、B、C、D四个候选人中选择(人数不限),如果选择了ABCD以外的人员,则视为废票。统计时输入“#”结束,请按候选人得票数从大到小顺序输出候选人及其得票情况。
输入说明:

一行字符以#结束(大小写均可,如Aa都是对A的投票)
输出说明:

4行

按得票多少输出格式例如 B : 9 (2个空格隔开)

票数相同按字母顺序输出

输入样例:

若题目没有特别说明,则应该以多组测试数据方式读取,或者参考a001。ABCD#
输出样例 :

A : 1
B : 1
C : 1
D : 1

program a1;
var st:array['A'..'D'] of longint;
x:char;

begin
read(x);
while x<>'#' do
begin
if (x>='A') and (x<='D') then
st[x]:=st[x]+1;
read(x);
end;
readln('A',' : ',st['A']);
readln('B',' : ',st['B']);
readln('C,' : ',st['C']);
readln('D,' : ',st['D']);
end.
比较简便。

var
f:array[1..4] of int64;
c:char;
i,j,t:longint;
begin
while c<>'#' do
begin
read(c);
if (c='a') or (c='A') then inc(f[1]);
if (c='b') or (c='B') then inc(f[2]);
if (c='c') or (c='C') then inc(f[3]);
if (c='d') or (c='D') then inc(f[4]);
end;
for i:=1 to 4 do