pascal 单词统计单词统计(word count.pas)Time Limit:1000MS Memory Limit:65536KTotal Submit:52 Accepted:14Description【问题描述】 读入一英文句子,单词之间用空格或逗号隔开,统计其中单词个数,并输出各个字母出
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/03 03:25:56
pascal 单词统计单词统计(word count.pas)Time Limit:1000MS Memory Limit:65536KTotal Submit:52 Accepted:14Description【问题描述】 读入一英文句子,单词之间用空格或逗号隔开,统计其中单词个数,并输出各个字母出
pascal 单词统计
单词统计(word count.pas)
Time Limit:1000MS Memory Limit:65536K
Total Submit:52
Accepted:14
Description
【问题描述】
读入一英文句子,单词之间用空格或逗号隔开,统计其中单词个数,并输出各个字母出现的频率(大写小写算同一字母).(句子末尾不一定用"."结束)
【输入文件】(xx.in)
共1行,要统计的英文句子.注:要注意连续两个空格或逗号与空格连在一起时的误判断.例如输入以下字符串:"abc_abc___abc,_abc___,_abc_,_."
( '_' 代表空格)
【输出文件】(xx.out)
见样列
【输入样例】
Your mother is a dog,and
your father has a bird.
【输出样例】
words:11
A 5
B 1
D 3
E 2
F 1
G 1
H 3
I 2
M 1
N 1
O 4
R 5
S 2
T 2
U 2
Y 2
pascal 单词统计单词统计(word count.pas)Time Limit:1000MS Memory Limit:65536KTotal Submit:52 Accepted:14Description【问题描述】 读入一英文句子,单词之间用空格或逗号隔开,统计其中单词个数,并输出各个字母出
var
ch:char;
wrd:boolean;
c:array['A'..'Z'] of integer;
ans:integer;
begin
wrd:=false; ans:=0;
fillchar(c,sizeof(c),0);
while not eoln do
begin
read(ch);
if (ch>='A')and(ch<='Z') then
begin
inc(c[ch]);
wrd:=true;
end else
if (ch>='a')and(ch<='z') then
begin
inc(c[chr(ord(ch)-32)]);
wrd:=true;
end else
begin
if not wrd then continue;
inc(ans);
wrd:=false;
end;
end;
writeln('words:',ans);
for ch:='A' to 'Z' do
if c[ch]<>0 then writeln(ch,' ',c[ch]);
end.