pascal 乒乓球问题找错

来源:百度知道 编辑:UC知道 时间:2024/07/04 13:55:30
program table;
type c=array[1..100] of char;
var s:c;
i,l,a,b:integer;

procedure try(s:c;k:integer);
begin
while (i<l) do
begin
inc(i);
if s[i]='W' then inc(a)
else inc(b);
if ((a>=k) or (b>=k)) and (abs(a-b)>=2) then
begin
writeln(a,':',b);
a:=0;
b:=0;
end;
end;
if (a<>0) or (b<>0) then
begin
writeln(a,':',b);
a:=0;b:=0;
end;
i:=0;
writeln;
end;

begin
read(s[1]);i:=1;
while s[i]<>'E' do
begin
inc(i);
read(s[i]);
end;
l:=i-1;
i:=0;
try(s,11);
try(s,21);
end.

题目是:
【问题背景】国际乒联现在主席沙拉拉自从上任以来就立志于推行一系列改革,以推动乒乓球运动在全球的普及。其中11分制改革引起了很大的争议,有一部分球员因为无法适应新规则只能选择退役。华华就是其中一位,他退役之后走上了乒乓球研究工作,意图弄明白11分制和21分制对选手的不同影响。在开展他的研究之前,他首先需要对他多年比赛的统计数据进行一些分析,所以需要你的帮忙。
【问题描述】华华通过以下方式进行分析,首先将比赛每个球的胜负列成一张表,然后分别计算在11分制和21分制下,双方的比赛结果(截至记录末尾

对不起啦,你的程序我一点也看不懂!-_-|||不过我有正确程序!(不是抄的!)
program table;
var
a11,a21:array[1..10,1..2]of integer;
ch:char;
i:integer;
begin
{文件自己打,我很懒O(∩_∩)O}
read(ch);
while ch<>'E' do
begin
if((a11[k,1]>10)or(a11[k,2]>10))and(abs(a11[k,1]-a11[k,2])>1)then
inc(k);
if((a21[l,1]>10)or(a21[l,2]>10))and(abs(a21[l,1]-a21[l,2])>1)then
inc(l);
if ch='W' then
begin
inc(a11[k,1]);
inc(a21[l,1]);
end;
if ch='E' then
begin
inc(a11[k,2]);
inc(a21[l,2]);
end;
end;
for i:=1 to k do writeln(a11[k,1],':',a11[k,2]);
writeln;
for i:=1 to l do writeln(a21[l,1],':',a21[l,2]);
end.

啊,好晕啊!你也不必这样吧!偶好不容易找到,再看下面,你已经找到了,我吐血!!!!!!

这题很简单
不着急,慢慢找