回 帖 发 新 帖 刷新版面

主题:帮忙改错一下,谢谢了

例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.

这个程序不能退出循环呀,帮忙解决一下,谢谢了!!各位大虾!

回复列表 (共4个回复)

沙发

哪位高手能不能帮我看看呀,谢谢了

板凳

怎么没人来帮忙修改修改呀?
各位大大来了,帮忙改一下吧,改出来+30,谢谢了!

3 楼

until t='*****';

应为until nema='*****';吧

4 楼

9494

我来回复

您尚未登录,请登录后再回复。点此登录或注册