主题:大家能不能帮我讲一下,谢谢。
Program ex;
Type
Link = ^node;
Node = Record
Data: Integer;
Next: Link;
End;
Var
n, a, i : Integer;
p, p1, p2, head, tail : Link;
Begin
ReadLn (n);
Randomize;
a := Random (90) + 10;
New(p);
p^.Data := a;
p^.Next := Nil;
head := p;
tail := p;
For i:=2 To n Do Begin
New(p);
p^.Data := random(90)+10;
p^.Next := Nil;
tail^.Next := p;
tail := tail^.Next;
End;
p := head;
While p <> Nil Do Begin
write (p^.Data:4);
p := p^.Next;
End;
WriteLn;
p1 := head;
For i:=1 To n-1 Do Begin
p2 := p1^.Data;
For i:= i+1 To n Do Begin
a := p1^.Data;
b := p2^.Data;
if a>b then Begin
p1^.Data := a;
p2^.Data := b;
p2 := p2^.Next;
End;
p1 := p1^.Next;
End;
End;
End.
这道题他显示是 p2 := p1^.Data; 这里错了,不过我是初学,没有弄懂,大家能不能帮我讲一下,谢谢。
Type
Link = ^node;
Node = Record
Data: Integer;
Next: Link;
End;
Var
n, a, i : Integer;
p, p1, p2, head, tail : Link;
Begin
ReadLn (n);
Randomize;
a := Random (90) + 10;
New(p);
p^.Data := a;
p^.Next := Nil;
head := p;
tail := p;
For i:=2 To n Do Begin
New(p);
p^.Data := random(90)+10;
p^.Next := Nil;
tail^.Next := p;
tail := tail^.Next;
End;
p := head;
While p <> Nil Do Begin
write (p^.Data:4);
p := p^.Next;
End;
WriteLn;
p1 := head;
For i:=1 To n-1 Do Begin
p2 := p1^.Data;
For i:= i+1 To n Do Begin
a := p1^.Data;
b := p2^.Data;
if a>b then Begin
p1^.Data := a;
p2^.Data := b;
p2 := p2^.Next;
End;
p1 := p1^.Next;
End;
End;
End.
这道题他显示是 p2 := p1^.Data; 这里错了,不过我是初学,没有弄懂,大家能不能帮我讲一下,谢谢。