奇狐社區論壇
在這個頁面顯示本主題全部的 3 個文章

奇狐社區論壇 (http://www.chiefox.com.tw/bbs/index.php)
- 問題交流 (http://www.chiefox.com.tw/bbs/forumdisplay.php?forumid=28)
-- 以下公式出現數組下標越界訊息,請求協助改正! (http://www.chiefox.com.tw/bbs/showthread.php?threadid=22477)


由 Markchu7 在 2020-05-11 12:17 發表:

以下公式出現數組下標越界訊息,請求協助改正!

以下公式出現數組下標越界訊息,請求協助改正!謝謝!
INPUT:N(2,1,99);
cc:=c;
oo:=o;
hh:=h;
ll:=l;
top:h,linethick;
bot:l,linethick;
xx[1]:=1;
kk:=1;
for i=1 to datacount do begin if xx[i]=1 then begin top[i]:=hh[i];
end;
if xx[i-1]=1 then begin if hh[i]>top[i-1] then begin top[i]:=hh[i];
xx[i]:=1,LINETHICK;
end;
else begin top[i]:=top[i-1];
xx[i]:=2;
end;
end;
if xx[i-1]=2 then begin if hh[i]>top[i-1] then begin top[i]:=hh[i];
xx[i]:=1;
end;
else begin top[i]:=top[i-1];
bot[i]:=ll[i];
xx[i]:=3;
end;
end;
if xx[i-1]=3 then begin top[i]:=top[i-1];
if ll[i]<bot[i-1] then begin bot[i]:=ll[i];
xx[i]:=3;
end;
else begin bot[i]:=bot[i-1];
xx[i]:=4;
end;
end;
if xx[i-1]=4 then begin top[i]:=top[i-1];
if ll[i]<bot[i-1] then begin bot[i]:=ll[i];
xx[i]:=3;
end;
else begin bot[i]:=bot[i-1];
xx[i]:=5;
end;
end;
if xx[i-1]=5 then begin if ll[i]<bot[i-1] or hh[i]>top[i-1] then begin top[i]:=hh[i];
bot[i]:=hh[i];
xx[i]:=1;
end;
else begin bot[i]:=bot[i-1];
top[i]:=top[i-1];
xx[i]:=5;
end;
end;
end;
for j=1 to datacount do begin if xx[j]=5 and xx[j-1]=4 then begin for k=j-1 downto j-kk do begin top[k]:=top[j];
bot[k]:=bot[j];
end;
end;
if xx[j-1]=5 and xx[j]=1 then kk:=0;
kk:=kk+1;
end;


由 cgjj 在 2020-05-11 12:55 發表:

回覆: 以下公式出現數組下標越界訊息,請求協助改正!

引用:
最初由 Markchu7 發表
以下公式出現數組下標越界訊息,請求協助改正!謝謝!
INPUT:N(2,1,99);
cc:=c;
oo:=o;
hh:=h;
ll:=l;
top:h,linethick;
bot:l,linethick;
xx[1]:=1;
kk:=1;
for i=1 to datacount do begin if xx[i]=1 then begin top[i]:=hh[i];
end;
if xx[i-1]=1 then begin if hh[i]>top[i-1] then begin top[i]:=hh[i];
xx[i]:=1,LINETHICK;
end;
else begin top[i]:=top[i-1];
xx[i]:=2;
end;
end;
if xx[i-1]=2 then begin if hh[i]>top[i-1] then begin top[i]:=hh[i];
xx[i]:=1;
end;
else begin top[i]:=top[i-1];
bot[i]:=ll[i];
xx[i]:=3;
end;
end;
if xx[i-1]=3 then begin top[i]:=top[i-1];
if ll[i]<bot[i-1] then begin bot[i]:=ll[i];
xx[i]:=3;
end;
else begin bot[i]:=bot[i-1];
xx[i]:=4;
end;
end;
if xx[i-1]=4 then begin top[i]:=top[i-1];
if ll[i]<bot[i-1] then begin bot[i]:=ll[i];
xx[i]:=3;
end;
else begin bot[i]:=bot[i-1];
xx[i]:=5;
end;
end;
if xx[i-1]=5 then begin if ll[i]<bot[i-1] or hh[i]>top[i-1] then begin top[i]:=hh[i];
bot[i]:=hh[i];
xx[i]:=1;
end;
else begin bot[i]:=bot[i-1];
top[i]:=top[i-1];
xx[i]:=5;
end;
end;
end;
for j=1 to datacount do begin if xx[j]=5 and xx[j-1]=4 then begin for k=j-1 downto j-kk do begin top[k]:=top[j];
bot[k]:=bot[j];
end;
end;
if xx[j-1]=5 and xx[j]=1 then kk:=0;
kk:=kk+1;
end;



當 i-1 或 j-1 為零時,就會越界存取!
奇狐數列並沒有第零個元素


由 Markchu7 在 2020-05-11 20:49 發表:

收到,感謝指導!


全部時間均為台灣時間, 現在時間為06:32
在這個頁面顯示本主題全部的 3 個文章


Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.

簡愛洋行 製作 Copyright 2003-. All Rights Reserved.