1317:【数组字符练习】7时间限制:1 Sec 内存限制:128 MB提交:105 解决:41[提交][状态][讨论版]读入一英文句子,单词之间用空格或逗号隔开,统计其中单词个数,并输出各个字母出现的频率.(句子末尾
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/25 01:59:25
1317:【数组字符练习】7时间限制:1 Sec 内存限制:128 MB提交:105 解决:41[提交][状态][讨论版]读入一英文句子,单词之间用空格或逗号隔开,统计其中单词个数,并输出各个字母出现的频率.(句子末尾
1317:【数组字符练习】7
时间限制:1 Sec 内存限制:128 MB
提交:105 解决:41
[提交][状态][讨论版]
读入一英文句子,单词之间用空格或逗号隔开,统计其中单词个数,并输出各个字母出现的频率.(句子末尾不一定用"."结束)
输入
输入文件word.in只有一行,内容为一行英文句子,英文句子的长度不超过100个字符,单词间由空格或逗号隔开.
输出
输出文件word.out第一行输出单词个数n,第二行开始每行表示一个字母出现的次数,未出现的字母不输出统计结果.
样例输入 Copy
abc abc abc,abc ,abc ,
样例输出 Copy
5
a 5
b 5
c 5
提示
来源
[提交][状态][讨论版]
1317:【数组字符练习】7时间限制:1 Sec 内存限制:128 MB提交:105 解决:41[提交][状态][讨论版]读入一英文句子,单词之间用空格或逗号隔开,统计其中单词个数,并输出各个字母出现的频率.(句子末尾
下面的程序假定英语句子只由小写字母和空格、标点组成:
var a:array['a'..'z']of integer;
s:string; i,w:integer; c:char;
begin
readln(s); w:=0;
for i:=2 to length(s) do
begin
if (s[i]=' ')and(s[i-1] in ['a'..'z'])then inc(w);
if s[i] in ['a'..'z'] then inc(a[s[i]]);
end;
if s[length(s)] in ['a'..'z'] then inc(w);
writeln(w);
for c:='a' to 'z' do
if a[c]>0 then writeln(c,' ',a[c]);
end.