来知道电脑站

您的位置: 主页>编程> pascal

pascal

 shirleyjulia 

pascal


var a:array[1..10000]of integer;
b:array[1..10000]of boolean;
n:integer;
procedure qpl(m:integer);
var i:integer;
begin
for i:=1 to n do begin
if (b[i]) and (m<n) then begin
b[i]:=false;
a[m 1]:=i;
qpl(m 1);
end
else if m=n then begin
for i:=1 to n do
write(a[i]);
writeln;
end;
end;
b[a[m]]:=true;a[m]:=0;
end;
begin
read(n);
fillchar(b,sizeof(b),true);
fillchar(a,sizeof(a),0);
qpl(0);
end.
为什么会打印n遍?请修改!

解决方法



是打印n遍啊.
要么不打印,打印就是n遍,a[1}~a[n],结束后再换行.

if m=n then begin
for i:=1 to n do
write(a[i]);
writeln;
end;

若要每打一个就换行应该:
if m=n then
for i:=1 to n do
begin
write(a[i]);
writeln;
end;

budui!

怎么不对啊?

procedure qpl(m:integer); 这个过程你自己调用了多次.
for i:=1 to n do begin
......
qpl(m 1);
......
end;

你没有讲清楚哦.
不知你究竟想做啥?
自己再看看吧.

try again

上一篇:什么是单片机    下一篇:VB 如何锁定CTRL ALT DEL 和ALT +TAB

编程相关文章

编程热门文章

编程推荐文章