各位帮我看看哪错了?Pascal编程

来源:百度知道 编辑:UC知道 时间:2024/06/07 21:00:22
题目:
计数
输入一段以句号结尾的英文,统计并输出哥字母出现的次数。假设句中没有大写字母。

我的程序:
program p9_2;
var n:array['a'..'z']of integer;
ch:char;
begin
fillchar(n,sizeof(n),0);
writeln('please input some letter');
repeat
read(ch);
if (ch>='a')and(ch<='z') then
n[ch]:=n[ch]+1
else writeln('erorr');
until ch='.';
if n[ch]>0 then
write(ch:3,':',n[ch]);
Readln;
end.

编译没问题但运行不了 系统出错

各位帮我看看哪错了——谢谢了!

错的太离谱请重写一个

小弟谢谢各位!

输出有问题,没有循环

program p9_2; {$apptype console$}}
var n:array['a'..'z']of integer;
ch:char;
begin
fillchar(n,sizeof(n),0);
writeln('please input some letter');
repeat
read(ch);
if (ch>='a')and(ch<='z') then
n[ch]:=n[ch]+1
else writeln('erorr');
until ch='.';
for ch:='a' to 'z' do
if n[ch]>0 then
write(ch:3,':',n[ch]);
Readln;
end.

如果还有问题,建议改为string
主要部分如下
var s:string;
a:array['a'..'z'] of integer;
i:integer;
j:char;
begin
readln(s);
for i:=1 to length[s]-1 do
if s[i]<>' 'then inc(a[s[i]]);

for j:='a' to 'z' do writeln(j,':',a[j]);
end.

这样的话就没问题了,以句号为结尾的条件也不需要了
如果因为数据过大有问题
可以改为 ansistring和longint 再有问题就没天理了!

程序修改如下:

program