1

请告诉我我哪里错了,我无法在 2 个程序中解决我的错误。我尝试在帕斯卡中使用递归。

这个正在运行,但它给了我错误的结果

program fatorial;
var
  n: integer;

function f(n: longint): longint;
begin
  if((n=0) or (n=1)) then 
    f:=1 
  else 
    *f:= n*f(n-1);*
  read(f);
end;

begin
  write('n:='); read(n);
  f(n);
  write('result:', f(n));
  readln;
end.

这个告诉我“错误:非法表达”,但我不知道如何解决

program Greatest_common_divisor;
var
  gcd,p,q: integer;
  r:=real;
begin
  write('p:'); read(p);
  write('q:'); read(q);
  r:= p mod q;
  if r <> o then
  begin
    p:=q;
    q:=r
    *gcv:= gcv(q,r);*
  end;
  write('Greatest common divisor:', gcv(p.q));
  readln;
end.
4

2 回答 2

2
  1. 您不应该阅读f该功能。

  2. 您应该编写一个函数而不是使用内部函数gcv()

于 2015-09-29T06:30:35.600 回答
0

第一个问题:

  1. 我认为f在函数中读取是不正确的。

但是第二个问题:

  1. 不要:=在命令中使用:r:=real;,仅:
  2. ogcv哪些变量?你没有确定ogcv之后var
  3. 放在;后面q:=r
于 2016-02-03T19:51:06.917 回答