0
我試圖因素給定數量a
,所以我寫了下面的Pascal代碼:運行時錯誤
program prime_factors;
var b:array[1..1000] of integer;
k,i,d,a:integer;
begin
k:=0;
write(' enter number ');
read(a);
while a>1 do
if a mod d =0 then
begin
k:=k+1;
b[k]:=d;
a:=a div d;
end
else
if d=2 then
d:=d+1
else
d:=d+2;
for i:=1 to k do
write(b[i],' ');
readln();
readln();
end.
但是當我運行它,它給了我錯誤200或運行時錯誤,但我無法確定是什麼問題。我已經使用k作爲b數組中的因子長度。我應該認爲索引k有什麼問題嗎?
找到我的錯誤,我還沒有初始化d –
每個運行時錯誤代碼都有一個關聯的描述。錯誤200被零除,這應該表明d確實是罪魁禍首,因爲代碼中的所有除法運算(mod,div)都使用d作爲分母。 – Thomas