从记录中找到最高值

| 我正在尝试编写一个过程,该过程将遍历数字记录并找出哪个是最高的,而当前的代码则在下面。我的问题是,它似乎只是列出了记录中的最后一个分数(而不是最高分数)。任何帮助是极大的赞赏。
Procedure FindTopScore(Var TopScores : TTopScores);
Var
Count : Integer;
Highest : Integer;
Name: String;

Begin
     For Count := 1 to MaxSize Do
          If TopScores[Count].Score > Highest Then
     Highest := TopScores[Count].Score;
     Name := TopScores[Count].Name;
       Writeln(\'Higest score is by \' ,TopScores[Count].Name, \' of \', TopScores[Count].Score);
End;
    
已邀请:
您没有输出
Highest
,而是
TopScores[Count].Score
。只需使用
 Writeln(\'Highest is \', Highest, \' for \', Name);
另外,还应该将名称放入if语句内部的变量ѭ4(实际上位于外部)。 插件:如果您希望所有姓名在打领带时都可以使用,例如以下代码
Highest := 0;
For Count := 1 to MaxSize Do Begin
     If TopScores[Count].Score = Highest Then Begin
         Name := Name + \' and \' + TopScores[Count].Name;
     End;
     If TopScores[Count].Score > Highest Then Begin
         Highest := TopScores[Count].Score;
         Name := TopScores[Count].Name;
     End;
 End;
    
除了霍华德的答案外,在开始循环之前,请将“ 0”设置为“最高”。未初始化时,它具有任意值,可能高于最高分数。     
除了接受的答案之外,请确保您打开警告和提示,并且您将看到:
      testhighest.pp(16,39) Warning: Local variable \"Highest\" does not seem to be initialized
哪一个是
        If TopScores[Count].Score > Highest Then
线     

要回复问题请先登录注册