2014-10-07 34 views
-3
class marathon { 
    public static void main (String[] arguments) { 
     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++) { 
      System.out.println(names[i] + ": " + times[i]); 
     } 
    } 
} 
+0

先做格式化。 – 2014-10-07 18:11:43

+8

1)對數組進行迭代/排序2)找到最小值3)打印該值 – 2014-10-07 18:13:00

+1

您可以在已經定義的循環中迭代數組,在最短時間內有一個變量,並在時間<當前最低時更新它時間。 – 2014-10-07 18:13:44

回答

0

迭代次數陣列和尋找最小:

If (times[i]<min) 
    min= times[i]; 

然後打印:

System.out.println("fastest is:"+min); 
0

你要隨時注意你迭代通過所有的項目 - 即,目前的時間比以前的任何時間都快(少)?

class marathon { 
    public static void main (String[] arguments) { 
     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}; 
     int fastestTimeIndex = -1; 
     for (int i = 0; i < names.length; i++) { 
      System.out.println(names[i] + ": " + times[i]); 
      if (fastestTimeIndex == -1 || times[i] < times[fastestTimeIndex]) { 
       fastestTimeIndex = i; 
      } 
     } 
     System.out.println(names[fastestTimeIndex] + ": " + times[fastestTimeIndex]); 
    } 
} 
+0

謝謝兄弟這是好的 – 2014-10-07 18:21:43

+0

沒有問題。我還會在上面的評論中再次提到@azurefrog所說的 - 當他們使用相同的索引時,將數據保存在一起通常會更好。這意味着,在這個例子中,您將創建一個包含名稱和時間的簡單對象,並在一個數組中跟蹤它們。 – 2014-10-07 18:29:05

0

首先,你必須尋找最小的時間,以獲取該數組中的時間位置。你可以實現這樣的事情:

min = ∞ 
min_position = 0 
counter = 0 
for each element in array 
if element < min then 
min = element 
min_position = counter 
end if 
counter = counter + 1 
end for 

現在你有最小的時間和關閉陣列的時間。現在,你只需要檢查哪些值對應於該位置的其他陣列中

名[min_position]

告訴我,如果你需要幫助! 再見