主题:帮忙改错一下,谢谢了
例9.15 输入若干姓名,把指定的某个姓氏名字打印出来,并统计此姓氏的人数.
[分析] 假定姓名最多由15个字符组成,姓氏由5个字符组成.首先读入指定的需要寻找并打印的某个姓氏,然后不断读入各人的改名,每读入一个姓名后就取前5个字符与所需查找的姓氏比较,若相等,则打印出该姓名,并计一次数.用'*****'号作为结束标志,最后输出所统计的姓氏的人数.
program abc;
const ll=5;ln=15;
var
lastn,t:string[ll];
name:string[ln];
i,n,p:integer;
begin
writeln('input a last name :');readln(lastn);
writeln('input names:');
n:=0;
repeat
readln(name);
for i:=1 to ll do t[i]:=' ';
p:=1;
while(p<=ll) and (name[p]<>' ')do
begin
t[p]:=name[p];p:=p+1
end;
if t=lastn then
begin writeln(name);n:=n+1
end
until t='*****';
writeln('last name',lastn,'is total',n);
readln
end.
这个程序不能退出循环呀,帮忙解决一下,谢谢了!!各位大虾!
[分析] 假定姓名最多由15个字符组成,姓氏由5个字符组成.首先读入指定的需要寻找并打印的某个姓氏,然后不断读入各人的改名,每读入一个姓名后就取前5个字符与所需查找的姓氏比较,若相等,则打印出该姓名,并计一次数.用'*****'号作为结束标志,最后输出所统计的姓氏的人数.
program abc;
const ll=5;ln=15;
var
lastn,t:string[ll];
name:string[ln];
i,n,p:integer;
begin
writeln('input a last name :');readln(lastn);
writeln('input names:');
n:=0;
repeat
readln(name);
for i:=1 to ll do t[i]:=' ';
p:=1;
while(p<=ll) and (name[p]<>' ')do
begin
t[p]:=name[p];p:=p+1
end;
if t=lastn then
begin writeln(name);n:=n+1
end
until t='*****';
writeln('last name',lastn,'is total',n);
readln
end.
这个程序不能退出循环呀,帮忙解决一下,谢谢了!!各位大虾!