CONST
WAY:ARRAY[1..3,1..2] OF INTEGER=((1,1),(0,-1),(-1,0));
VAR
X,Y,N:INTEGER;
A:INTEGER;
FUNCTION CHECK(X,Y:INTEGER):BOOLEAN;
BEGIN
CHECK:=TRUE;
IF A[X,Y]<>0 THEN CHECK:=FALSE;
IF X>N OR X<0 OR Y>N OR Y<0 THEN CHECK:=FALSE;
END;
PROCEDURE MAIN;
VAR I:INTEGER;
K:INTEGER;
BEGIN
WRITE(‘N=’);READLN(N);
FILLCHAr(A,SIZEOF(A),0);
X:=1;Y:=1;K:=1;I:=1;A[X,Y]:=1;
WHILE K<N(N+1) DIV 2 DO
BEGIN
WHILE CHECK(X+WAY[I,1],Y+WAY[I,2] DO
BEGIN
X:=X+WAY[I,1];Y:=Y+WAY[I,2];
K:=K+1;
A[X,Y]:=K;
END;
I:=I+1;
IF I>3 THEN I=1;
END;
PROCEDURE PRINT;
VAR I,J:INTEGER;
BEGIN
FOR I:=1 TO N DO
BEGIN
FOR J:=1 TO I DO WRITE(A[I,J]:3);
WRITELN;
END;
END;
BEGIN
MAIN;
PRINT;
END.
这个程序什么地方错了??
有关PASCAL程序错误
答案:2 悬赏:10 手机版
解决时间 2021-07-30 05:11
- 提问者网友:不爱我么
- 2021-07-29 20:10
最佳答案
- 五星知识达人网友:野味小生
- 2021-07-29 20:22
A 是integer 为什么会有A[x,y]出现,不知道你原题是什么,不过这个肯定错了,A应该是二维数组。
楼上说的没错…要加小括号
第十九行有个N(N+1) 要改成 N*N(N+1)
第二十一行漏了右括号;
第二十八行 I=1 应为 I:=1
Main这个过程里面少了一个end;自己找去
全部回答
- 1楼网友:一把行者刀
- 2021-07-29 21:56
IF (X>N) OR (X<0) OR (Y>N) OR (Y<0) THEN CHECK:=FALSE;
布尔表达式要加上小括号
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯