主题:[讨论]202:堆栈出错(大虾帮忙)
我写了一个程序,原来输入:
5
0 0 0 0 0
1 1 1 0 1
1 0 0 0 0
0 0 1 1 0
0 0 0 0 0
后输出应该是:
(1,1)->(1,2)->(1,3)->(1,4)->(2,4)->(3,4)->(3,5)->(4,5)->(5,5)
可电脑总告诉我:202:堆栈出错,哪为大虾教教我,仔细说明一下关与202:堆栈出错的问题。这是我的程序:
const
x1:array[1..4] of integer=(1,-1,0,0);
y1:array[1..4] of integer=(0,0,1,-1);
var
a:array[0..101,0..101] of integer;
sc:array[1..1000] of integer;
n,i,j,k:integer;
procedure dfs(x,y:integer);
begin
for i:=1 to 4 do
begin
if a[x+x1[i],y+y1[i]] <>1 then
begin
dfs(x+x1[i],y+y1[i]);
k:=k+1;
sc[k]:=i+x1[i];
k:=k+1;
sc[k]:=j+y1[i];
end;
end;
if (x+x1[i])*(y+y1[i])=n*n then exit;
end;
begin
read(n);
fillchar(a,sizeof(a),1);
for i:=1 to n do
for j:=1 to n do
read(a[i,j]);
dfs(1,1);
for i:=k downto 1 do
begin
if 1=1 then
begin
write(sc[1]);
break;
end;
if k mod 2=1 then
write(sc[i],',')
else
write(sc[i],'->');
end;
end.
FP提示我第9行和第14行出错,能帮我改一下吗?(编译没问题)。
这题原来是迷宫问题:给出一个n×n的迷宫,请你给出一条从入口(1,1)到出口(n,n)的路径。
输入数据:n和迷宫初始状态
输出数据:任意一条可行的路径
输入样例:
5
0 0 0 0 0
1 1 1 0 1
1 0 0 0 0
0 0 1 1 0
0 0 0 0 0
(如图)
输出样例:
(1,1)->(1,2)->(1,3)->(1,4)->(2,4)->(3,4)->(3,5)->(4,5)->(5,5)
5
0 0 0 0 0
1 1 1 0 1
1 0 0 0 0
0 0 1 1 0
0 0 0 0 0
后输出应该是:
(1,1)->(1,2)->(1,3)->(1,4)->(2,4)->(3,4)->(3,5)->(4,5)->(5,5)
可电脑总告诉我:202:堆栈出错,哪为大虾教教我,仔细说明一下关与202:堆栈出错的问题。这是我的程序:
const
x1:array[1..4] of integer=(1,-1,0,0);
y1:array[1..4] of integer=(0,0,1,-1);
var
a:array[0..101,0..101] of integer;
sc:array[1..1000] of integer;
n,i,j,k:integer;
procedure dfs(x,y:integer);
begin
for i:=1 to 4 do
begin
if a[x+x1[i],y+y1[i]] <>1 then
begin
dfs(x+x1[i],y+y1[i]);
k:=k+1;
sc[k]:=i+x1[i];
k:=k+1;
sc[k]:=j+y1[i];
end;
end;
if (x+x1[i])*(y+y1[i])=n*n then exit;
end;
begin
read(n);
fillchar(a,sizeof(a),1);
for i:=1 to n do
for j:=1 to n do
read(a[i,j]);
dfs(1,1);
for i:=k downto 1 do
begin
if 1=1 then
begin
write(sc[1]);
break;
end;
if k mod 2=1 then
write(sc[i],',')
else
write(sc[i],'->');
end;
end.
FP提示我第9行和第14行出错,能帮我改一下吗?(编译没问题)。
这题原来是迷宫问题:给出一个n×n的迷宫,请你给出一条从入口(1,1)到出口(n,n)的路径。
输入数据:n和迷宫初始状态
输出数据:任意一条可行的路径
输入样例:
5
0 0 0 0 0
1 1 1 0 1
1 0 0 0 0
0 0 1 1 0
0 0 0 0 0
(如图)
输出样例:
(1,1)->(1,2)->(1,3)->(1,4)->(2,4)->(3,4)->(3,5)->(4,5)->(5,5)