如何返回与最大时间对应的索引

时间:2015-09-05 21:33:50

标签: java output

下面的代码有一个名字数组(马拉松赛车手)和另一个数组我有每个(赛车手)的时间数组来完成比赛...... 我想返回与时间最长的人对应的索引。 我的代码确实返回了最大的时间,但它返回了所有名字(赛车手)的最大时间......一个赛车手应该返回最大的时间......

<?php if(!empty(getMessage())): ?>
  <div class="container">
      <h1>The nested comment exampel!</h1>
  <?php   
      $i=0; //initialize flag
      foreach (getMessage() as $value){ ?>
      <div class="comment" id="<?= $value->id; ?>">
       //you don't need level class
          <?php if($value->visible == 0) : ?>
          <?= $value->date ?><br>
          Deleted
          <?php elseif($value->visible == 1): ?>
          <?= $value->date ?> <a href="index.php?delete=<?= $value->id ?>">X</a> <?= 'id: '. $value->id . ', sort order: ' .$value->sort_order . ', level: '.$value->level ;?><br>
          <?= $value->comment_text ?>

          <form action="index.php" method="post">
          <input type="hidden" name="id" value="<?= $value->id ?>" />
          <input type="hidden" name="parent" value="<?= $value->reply_to ?>" />
          Add comment: <input type="text" name="svar">
          <input type="submit">
          </form>

          <?php endif; ?>

<?php 
        $i++; //sum flag

    }
    for($x=0; $x<=$i; $x++) { //paint div closers
           echo '</div>' ;
   }  
 ?>
<? endif; ?>
      </div>

我得到的输出是:

class Marathon {

        public static void main (String[] arguments) {
            int biggest = 0;
            String[] names = {
                "Elena", "Thomas", "Hamilton", "Suzie", "Phil", "Matt", "Alex",
                "Emma", "John", "James", "Jane", "Emily", "Daniel", "Neda",
                "Aaron", "Kate"
            };

            int[] times = {
                341, 273, 278, 329, 445, 402, 388, 275, 243, 334, 412, 393, 299,
                343, 317, 265
            };

            for (int i = 0 ; i < names.length ; i++) {
                if (times[i] > biggest) {
                    biggest=times[i];
                }
                System.out.println(names[i]+":"+biggest);

           }
         }
       }

1 个答案:

答案 0 :(得分:1)

有几个问题:

  • 您在计算
  • 之前假设结果
  • 您正在寻找最大值,因此初始值应尽可能小(例如0,因为它是时间)
  • 你应该存储最大时间的索引,而不仅仅是最大的时间本身
  • 你不应该在循环中打印,因为你只想用最长的时间打印跑步者的名字(所以一次打印)