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 |
求助!!!这是我的程序: 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