为什么这个程序的功能重复?帕斯卡尔

时间:2014-04-04 12:04:00

标签: pascal

制定了一个寻找最大公约数的程序,但由于某种原因,该函数正在重复。

var p,q:integer;
function nod(x,y: integer):integer;
begin
while y<>0 do nod(y,x mod y);
result:=x;
end;
begin
write('Enter two integers: ');
read(p,q);
write(nod(p,q));
end.

1 个答案:

答案 0 :(得分:1)

您没有更新y变量,循环永远不会结束。

也许:

var p,q:integer;
function nod(x,y: integer):integer;
begin
while y<>0 do 
  begin
    y:= nod(y,x mod y);
  end;
result:=x;
end;
begin
write('Enter two integers: ');
read(p,q);
write(nod(p,q));
end.