1
請告訴我我在哪裏錯了,我無法罰款2個程序中的錯誤。我嘗試在pascal中使用遞歸。我不知道爲什麼程序沒有運行
這一個正在運行,但它給了我錯了resuts
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)'。那是爲什麼?你必須從'* f:= n * f(n-1); *'外面去掉星號。我不確定你爲什麼在那裏。爲什麼你自己在線上有額外的'f(n);'呼叫?它沒有任何用處。結果不存儲。對於你的第二個函數,爲什麼你在'gcv:= gcv(q,r)'周圍有星號? gcv定義在哪裏?和'gcv(p.q)'是無效的,因爲你有一段時間,而不是逗號。 – lurker
星號可能是強調(顯示遞歸)從他複製這個關閉的維基或論壇頁面:-) –
@MarcovandeVoort我認爲星號是突出顯示的東西。我列舉了OP需要解決的其他一些問題。我認爲他們對於他們傾向於他們的問題的基本意識,因爲來源也是一個理想的目標。 :) – lurker