在循环体未结束之前,不能确定Arr数组的长度,那么给数组里的元素赋值就出现错误了。如果笼统地预先定义10000的长度,而实际结果却只是十来个元素或者只有二三个的长度,那岂不是浪费内存存储空间??很是想不明白,各位指点一下迷津.var i:Integer;
Arr:array of Integer;//动态数组steLength(Arr,10000)//有必要搞这么大吗???? for i:=0 to N do
begin
if N/2=0 then Arr[i]:=i;
end;
Arr:array of Integer;//动态数组steLength(Arr,10000)//有必要搞这么大吗???? for i:=0 to N do
begin
if N/2=0 then Arr[i]:=i;
end;
应该是这样:var i,n:integer;
ArrList:array of Integer;
n:=0;
for i:=1 to 10 do
begin
if .... then
begin
setLength(ArrList,n+1);//将数组的长度加1
ArrList[n]:=i;
n:=n+1;
end;
end;