Syntax 为什么不是';这个Pascal程序不工作吗?

Syntax 为什么不是';这个Pascal程序不工作吗?,syntax,pascal,towers-of-hanoi,Syntax,Pascal,Towers Of Hanoi,这个程序需要解决河内塔楼的问题,但由于某些原因它无法工作,这是我的代码 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); writ

这个程序需要解决河内塔楼的问题,但由于某些原因它无法工作,这是我的代码

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.
程序haanoi;
程序Hanoi(n:integer;A,B,C:char);
开始
如果n=1,则
writeln(A,'-->',C)
其他的

你的缩进是骗人的-你的程序实际上是这样构造的:

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.
我相信你知道问题出在哪里了

如果要在一个块中包含多行,则必须使用
开始
结束
对它们进行分隔,这就是为什么执行此操作时程序会工作的原因。

可能重复的