请问各位精通PASCAL语言的长兄们,运行错误202(栈溢出)一般采用什么东西来处理? 5

vars:array[0..1000]oflongint;y:array[0..1000]oflongint;a,b,i,j:longint;procedurezj(t,... var s:array[0..1000]of longint;
y:array[0..1000]of longint;
a,b,i,j:longint;
procedure zj(t,c:longint);
begin
if s[t]>c then
begin
if i>1 then dec(i);
zj(t-1,c);
end
else
if s[t]<=c then
begin
y[i]:=s[t];
zj(t,c-s[t]);
inc(i);
end
else
if c=0 then
begin
for j:=1 to i do
write(y[i],' ');
end;
write('No solution!');
end;
begin
readln(a,b);
for j:=1 to a do
read(s[j]);
i:=1;
zj(a,b);
end.
程序有错吗
展开
 我来答
gcbjoy
2014-08-05 · TA获得超过1.1万个赞
知道大有可为答主
回答量:1.1万
采纳率:92%
帮助的人:2296万
展开全部
在turbo pascal中可以通过{$}预编译指令调整栈空间的大小(从16K到64K),你查一下看free pascal中有无类似调整栈空间的预编译指令。
我的理解:函数、过程中的临时变量、保护现场等需要用到栈,特别是递归调用用到的栈空间无法估计,所以即使在递归中应尽量使用全局变量 !
追问

为毛改进成这样还不行

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式