program qs(input,output);
type
list=array[1..8] of integer;
var
a:list;i:integer;
function partition(p,r:integer;var l:list):integer;
var
pivot,i,j,zhong:integer;
begin
pivot:=5;
i:=p-1;
j:=r+1;
{while do
begin }
repeat
dec(j);
until l[j]<=pivot;
repeat
inc(i);
until l>=pivot;
if i<j
then begin
zhong:=l;
l:=l[j];
l[j]:=zhong;
end
else if j<>r
then partition:=j
else partition:=j-1;
{ end;}
end;
procedure sort(p,r:integer;var l:list);
var
q:integer;
begin
if p=r
then exit
else begin
q:=partition(p,r,l);
sort(p,q,l);
sort(q+1,r,l);
end;
end;
begin
a[1]:=5;a[2]:=3;a[3]:=2;a[4]:=6;a[5]:=4;a[6]:=1;a[7]:=3;a[8]:=7;
sort(1,8,a);
for i:=1 to 8 do
write(a,' ');
readln;
end.
我这个程序真么是错的哦,哪个帮我找下原因嘛!!谢谢牛兄!!