早教吧 育儿知识 作业答案 考试题库 百科 知识分享

关于螺旋填数,HELPME!源程序在这里,帮我看看啊:vara:array[1..10,1..10]ofinteger;shu,i,j,n,k:integer;beginread(n);i:=1;j:=i;repeatifk=1thenk:=-1elsek:=1;repeatif(i=0)thenbeginif(a[i,j]=0)thenbeginshu:=shu+1;a[i,j]:=shu;i:=i

题目详情
关于螺旋填数,HELP ME!
源程序在这里,帮我看看啊 :
var
a:array [1..10,1..10] of integer;
shu,i,j,n,k:integer;
begin
read(n);
i:=1;
j:=i;
repeat
if k=1
then k:=-1
else k:=1;
repeat
if (i=0)
then begin
if (a[i,j]=0)
then begin
shu:=shu+1;
a[i,j]:=shu;
i:=i+k;
end
else begin
i:=i-k;
break;
end;
end
else begin
i:=i-k;
break;
end;
until i>100;
repeat
if (j=0)
then begin
if (a[i,j]=0)
then begin
shu:=shu+1;
a[i,j]:=shu;
j:=j+k;
end
else begin
j:=j-k;
break;
end;
end
else begin
j:=j-k;
break;
end;
until j>100;
until shu=n*n;
for i:=1 to n do
for j:=1 to n do
write(a[i,j]:3);
writeln;
end.
▼优质解答
答案和解析
var n:integer;a:array[1..100,1..100] of integer;x,y,ax,ay,i,t:integer;beginfillchar(a,sizeof(a),0);ax:=0;ay:=1;x:=1;y:=1;readln(n);for i:=1 to n*n do begina[x,y]:=i;if not(((x+ax) in [1..n])and((y+ay)...