2015-10-14 74 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对它们进行分隔,这就是程序工作的原因。