微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从记录中找到最高值

如何解决从记录中找到最高值

| 我正在尝试编写一个过程,该过程将遍历数字记录并找出哪个是最高的,而当前的代码则在下面。我的问题是,它似乎只是列出了记录中的最后一个分数(而不是最高分数)。任何帮助是极大的赞赏。
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
线     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。