统计字母出现次数 (pascal输出出现笑脸)
pascal吧
全部回复
仅看楼主
level 12
紫弦☞ 楼主
题目描述
输入一串小写字母(以"."为结束标志),统计出每个字母在该字符串中出现的次数(若某字母不出现,则不要输出)。
输入
输入只有一行,包括若干个字符。
输出
输出只有两行,第一行为出现的小写字母,第二行为字母的出现次数。
样例输入abdceeef.
样例输出abcdef
111131
这是我的代码:
var c:char;
i:longint;
a:array[97..122] of longint;
begin
read(c);
while c<>'.' do
begin
inc(a[ord(c)]);
read(c);
end;
for i:=97 to 122 do
begin
if a[i]>0 then write(char(a[i]));
end;
writeln;
for i:=97 to 122 do
begin
if a[i]>0 then write(a[i]);
end;end.
为什么输出是一堆笑脸
2015年01月03日 13点01分 1
level 8
笑脸是chr(2),心形是chr(4)
2015年01月04日 12点01分 2
level 8
2015年01月04日 12点01分 3
level 9
应把“char(a[i])”改为“chr(i)”
2015年01月04日 12点01分 4
level 4
var ch:char;
a:array['a'..'z']of longint;
begin
while not eoln do begin
read(ch);inc(a[ch]);
end;
for ch:='a' to 'z' do if a[ch]>0 then write(a[ch]);
end.
2015年01月10日 12点01分 5
level 4
桶排序思想
2015年01月10日 12点01分 6
level 13
a[i]指的是ascii码为i的字符出现次数,char(a[i])将其强转为字符,而应该强转的是当前统计的字符i即char(i)
char跟chr应该差不多的吧,都是强转
2015年01月10日 12点01分 7
level 12
碰见这种问题也是蛮醉的[真棒]
2015年01月10日 14点01分 8
1