2015-10-14 72 views
-1

這個程序需要解決河內問題的塔,但由於某種原因,它不會工作,這是我的代碼。爲什麼不是這個Pascal程序工作?

program haanoi ; 

procedure Hanoi(n: integer; A, B, C: char); 
    begin 
    if n = 1 then 
     writeln(A, '-->', C) 

    else 
           <---- F 
     hanoi(n-1, A, C, B); 
     writeln(A, '-->',C); 
     hanoi(n-1, B, A, C); 
           <--- G 

    end ; 
begin 

Hanoi(4, 'A', 'B', 'C') ; 
readln ; 
end. 

但是當我在F行開始加行並結束;在G線上工作,爲什麼?

+1

[Pascal if/else program syntax error]可能重複(http://stackoverflow.com/questions/25827359/pascal-if-else-program-syntax-error) –

回答

0

你壓痕是欺騙 - 你的程序實際上是結構是這樣的:

program haanoi ; 

procedure Hanoi(n: integer; A, B, C: char); 
begin 
    if n = 1 then 
     writeln(A, '-->', C) 
    else 
     hanoi(n-1, A, C, B); 
    writeln(A, '-->',C); 
    hanoi(n-1, B, A, C); 
end; 

begin 
Hanoi(4, 'A', 'B', 'C'); 
readln; 
end. 

我敢肯定,你看到問題的所在。

如果要在一個塊中包含多條線,則必須用beginend對它們進行分隔,這就是程序工作的原因。