Pascal 中的 for 循环中的 If 条件

If condition in for loop in Pascal

我有问题。 If for 循环中的条件仅检查一次。有什么问题?这是我的代码:

program Planas;

function skaiciuoti() : integer;
  var z, zz, d, dt, dp, i, sk : integer;
                       Fr, Fw : text;
  begin
    Assign(Fr, 'Duomenys.txt');
    Reset(Fr);
    ReadLn(Fr, d, z);
    zz := 0;
    dt := d;
    for i := 1 to d do
      begin
        Read(Fr, sk);
        zz := zz + sk;
        if sk >= z then
          dt := d - 1;
      end;
    z := d * z - zz;
    dp := z div d;
    if z mod d <> 0
      then dp := dp + 1;
    Close(Fr);
    WriteLn(dt);
    WriteLn(z);
    WriteLn(dp);
  end;
begin
  skaiciuoti();
  Readln;
end.

P.S提前感谢您的回答! :)

也许您在 dt := d - 1 中的代码有错别字。 d 的值在循环中似乎是常量,因此 dt 在第一次成功检查后不会改变。我猜你可能想通过使用 dt := dt - 1 来减少 dt