请告诉我我错在哪里,我不能在2个程序中找到我的错误。我尝试在pascal中使用递归。
这个正在运行,但是它给我错误的结果
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.
-
不应该在函数中读取
f
。 -
你应该写一个函数,而不是使用内部函数
gcv()
第一个问题
- 我认为在函数中读取
f
是不正确的。
但是第二个问题:
- 在
r:=real;
命令中不要使用:=
,只能使用:
-
o
和gcv
是什么样的变量?你没有在var
之后识别o
和gcv
。 - 将
;
放在q:=r
之后