回 帖 发 新 帖 刷新版面

主题:[讨论]出错啦,帮我看看

program muji;
  uses crt;
var a:array[1..50]of integer;
    q,j,i,m,n:integer;
  procedure  print;
     var j:integer;
     begin
       write('(');
       for j:=1 to i do
         write(a[j]);
       write(')');i:=i-1;
     end;
  procedure dg(st,m:integer);
     var j,b:integer;
     begin
      if m=0 then print
      else for b:=st to n-m+1  do begin
               i:=i+1;a[i]:=b;dg(b+1,m-1);
                                 end;
     end;
begin
  writeln('n=?');
  readln(n);
  for j:=1 to n do
    begin
      i:=0;
     dg(1,j);
     end;
     end.
end.[size=5][/size]

回复列表 (共3个回复)

沙发

1、你“uses crt”干吗?
2、你“procedure print”没有括号,下面的调用也没有。

板凳

我想出来了
其实是一个递归错误
program muji;
var a:array[1..50]of integer;
    q,j,i,m,n:integer;
  procedure  print;
     var j:integer;
     begin
       write('(');
       for j:=1 to i do
         write(a[j]);
       write('),');
     end;
  procedure dg(st,m:integer);
     var j,b:integer;
     begin
      if m=0 then print
      else for b:=st to n-m+1  do begin
               i:=i+1;a[i]:=b;dg(b+1,m-1);
                                 end;
     i:=i-1;
     end;
begin
  writeln('n=?');
  readln(n);
  write('{(),');
  for j:=1 to n do
    begin
      i:=0;
     dg(1,j);
     end;
   write('}');
end.
uses crt 是我在检查错误来源时用的,忘删了

3 楼

[quote]1、你“uses crt”干吗?
2、你“procedure print”没有括号,下面的调用也没有。[/quote]

procedure print本来就不需要参数

我来回复

您尚未登录,请登录后再回复。点此登录或注册