回 帖 发 新 帖 刷新版面

主题:大家能不能帮我讲一下,谢谢。

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;   这里错了,不过我是初学,没有弄懂,大家能不能帮我讲一下,谢谢。

回复列表 (共1个回复)

沙发


显然是错的。
node的data域是integer类型,而p2是指针类型,不出错才怪

我来回复

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