Pascal 八皇后问题

VARs:ARRAY[1..8]OFinteger;a,b,c:ARRAY[-7..16]OFboolean;i,j,k,x:integer;p:boolean;PROC... VAR
s:ARRAY[1..8] OF integer;
a,b,c:ARRAY[-7..16] OF boolean;
i,j,k,x:integer;
p:boolean;
PROCEDURE print;

BEGIN
FOR k:=1 TO 8 DO
BEGIN
WRITE(' ',s[k]);
a[j]:=true;
b[i-j]:=true;
c[i+j]:=true;
END;
WRITELN;
END;
BEGIN
FOR i:=-7 TO 16 DO
BEGIN
a[i]:=true;
b[i]:=true;
c[i]:=true;
END;
i:=0;
x:=0;
REPEAT
inc(i);
j:=0;
p:=false;
REPEAT
inc(j);
IF (a[j])AND(b[i-j])AND(c[i+j])AND(j<=8) THEN BEGIN
s[i]:=j;
a[j]:=false;
b[i-j]:=false;
c[i+j]:=false;
IF i=8 THEN BEGIN x:=x+1; print; END
ELSE p:=true;
END
ELSE IF j>=8 THEN BEGIN
i:=i-1;
IF i>0 THEN BEGIN
j:=s[i];
a[j]:=true;
b[i-j]:=true;
c[i+j]:=true;
END
ELSE p:=true;
END;

UNTIL p=true;
UNTIL i=0;
WRITELN(x);
READLN;
END.

这个程序为什么在XP SP3(正盗版都一样)中运行会提示错误201(FreePascal V2.0.4)而在XP SP2中可以正常运行?
为什么在XP SP3中装了GUIDE V1.0.0 用GUIDE就可以正常运行?
我们电脑的FreePascal版本都一样啊
为什么GUIDE可以通过?
不是编译不能通过,而是运行时中断 201
展开
 我来答
百度网友2c4d0d9
2009-06-21 · 超过26用户采纳过TA的回答
知道答主
回答量:88
采纳率:0%
帮助的人:80.2万
展开全部
监视一下哪里报错的...看看数组中的变量例如a[i] 的i啊是不是超过了范围,
这个和XP没有关系,高版本的编译器中,如果你数组下标越界的话,会在另外一个数组的空位置借用一下,这样很可能就能过掉..刚才我试了一下delphi 7 和 lazarus 0.9.26都能正常运行..cena 没试,其实如果cena 过了就可以无视了
xttts
2009-06-22 · TA获得超过2754个赞
知道小有建树答主
回答量:1295
采纳率:0%
帮助的人:1576万
展开全部
随着Windows版本的升级,对DOS程序的兼容性就越差。据说在Vista下已经不允许全屏的DOS的Graph作图了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式