关于螺旋填数,HELP ME!源程序在这里,帮我看看啊 :vara:array [1..10,1..10] of int
1个回答

var n:integer;

a:array[1..100,1..100] of integer;

x,y,ax,ay,i,t:integer;

begin

fillchar(a,sizeof(a),0);

ax:=0;ay:=1;

x:=1;y:=1;

readln(n);

for i:=1 to n*n do begin

a[x,y]:=i;

if not(((x+ax) in [1..n])and((y+ay) in [1..n])and(a[x+ax,y+ay]=0)) then begin

t:=ax;ax:=ay;ay:=t;

ay:=-ay;

end;

x:=x+ax;

y:=y+ay;

end;

for x:=1 to n do begin

for y:=1 to n do

write(a[x,y],' ');

writeln;

end;

end.

给别人写的

输出

1 2 3 4 5

16 17 18 19 6

15 24 25 20 7

14 23 22 21 8

13 12 11 10 9

自己弄一下