| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
你的程序里一个判数组越界的if都没有,而越界的情况显然存在.In Reply To:求助!!! Posted by:Racion at 2005-08-16 20:19:42 > 这是我的程序:
> Program ZJU1047;
> Var
> map:array[0..80,0..80]of char;
> a,b,c,d,i,j,k:Longint;
> Label 1;
> Procedure Change(c,d:Longint);
> Begin
> if map[c,d+1]='X' then Begin map[c,d+1]:='0';Change(c,d+1);end;
> if map[c,d-1]='X' then Begin map[c,d-1]:='0';Change(c,d-1);end;
> if map[c+1,d]='X' then Begin map[c+1,d]:='0';Change(c+1,d);end;
> if map[c-1,d]='X' then Begin map[c-1,d]:='0';Change(c-1,d);end;
> if map[c+1,d+1]='X' then Begin map[c+1,d+1]:='0';Change(c+1,d+1);end;
> if map[c-1,d+1]='X' then Begin map[c-1,d+1]:='0';Change(c-1,d+1);end;
> if map[c+1,d-1]='X' then Begin map[c+1,d-1]:='0';Change(c+1,d-1);end;
> if map[c-1,d-1]='X' then Begin map[c-1,d-1]:='0';Change(c-1,d-1);end;
> end;
> Procedure Init;
> Begin
> Fillchar(map,sizeof(map),'.');
> readln(a,b,c,d);
> if (a=0)and(b=0)and(c=0)and(d=0)then halt;
> For i:=1 to a do map[i,b+2]:='A';
> For i:=1 to b do map[a+2,i]:='A';
> For i:=1 to a do Begin
> For j:=1 to b do
> Read(map[i,j]);
> Readln;
> End;
> End;
> Procedure Click;
> Begin
> map[c,d]:='0';
> Change(c,d);
> end;
> Procedure Count;
> Begin
> For i:=0 to a+1 do
> For j:=0 to b+1 do
> if (map[i,j]<>'0') {and (map[i,j]<>'A')} and((map[i+1,j]='0')or(map[i-1,j]='0')or(map[i,j+1]='0')
> or(map[i,j-1]='0')) then map[i,j]:='Q';
>
> End;
> Begin
> 1: k:=0;
> INit;
> Click;
> Count;
> For i:=0 to a+1 do
> For j:=0 to b+1 do if map[i,j]='Q' then
> Begin
> If map[i,j+1]='0' then inc(k);
> If map[i,j-1]='0' then inc(k);
> If map[i+1,j]='0' then inc(k);
> If map[i-1,j]='0' then inc(k);
> end;
> Writeln(k);goto 1;
> End.
>
> 请教各位高手,为何会出现Range Check Error??谢谢!
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator