我得到一個I/O 998錯誤,我的任務是重寫從文件到數組的數字,並找到最大值和最小值。我做錯了什麼?如何找到我的錯誤(delphi)
implementation
var
f2: file of Real;
m: array of Real;
procedure TForm1.Button1Click(Sender: TObject);
var
f: Real;
max, min: Real;
i, j: Integer;
begin
AssignFile(F2, 'test3.dat');
Rewrite(f2);
for i := 1 to 50 do
begin
f := RandomRange(-100, 100);
Randomize;
Write(f2, f);
end;
CloseFile(f2);
i := 0;
Reset(f2);
while not Eof(f2) do
begin
SetLength(m, i);
Read(f2, m[i]);
Inc(i);
end;
CloseFile(f2);
max := m[1];
min := m[1];
for j := 1 to i do
if m[j] > max then
max := m[j]
else
if m[j] < min then
min := m[i];
未發佈您的所有代碼。每次調用Randomise循環都會破壞你的隨機性。帕斯卡I/O?爲什麼?超出範圍數組訪問不能幫助。最小/最大循環上錯誤的索引也是一個壞消息。坦率地說,這段代碼是一場災難。 –
您應該初始化i:= 1而不是i:= 0否則當您執行Setlength(m,i)時,您將始終擁有比您需要的數組小1的元素。 –
[block read error]可能的重複(http://stackoverflow.com/questions/9493522/block-read-error) – Im0rtality