2013-02-04 43 views
-2

雖然我看到有關同一主題的一些問題,但它們並不足以滿足我的情況。打印數組中的最小數字(Java)

import java.util.*; 
public class Kap3Oppg5 { 
public static void main(String[] args) { 
    int x = 0; 
    int tabell[] = new int[10]; 
    int heltall; 
    Scanner in = new Scanner(System.in); 
    int minstetall = tabell[0]; 

    while (x < 10) { 
     System.out.println("Tast inn neste tall:"); 
     heltall = in.nextInt(); 
     tabell[x] = heltall; 
     x = x + 1; 
    } 

    for (int i=0;i<tabell.length;i++) { 
     if (tabell[i] < tabell[0]) 
      minstetall = tabell[i]; 

    } 
    System.out.print(minstetall); 
} 

} 

爲什麼這不是打印最低的數字?

+1

邊評論:你可以使用的'而不是一個'清單'INT []'並調用'int min = Collections.min(list);'。 – assylias

回答

4

在你的if中的測試總是測試數組中的第一個元素。您可能需要根據發現該點的最低數字對其進行測試:

if (tabell[i] < minstetall) { ... 
2

因爲每次您都要與數組的第一個元素進行比較。

2

你比較if (tabell[i] < tabell[0])錯了,它應該是:

if (tabell[i] < minstetall) 

你反對的第一個元素進行比較。 當前如果你的數組的第一個元素偶然包含最低值,那麼你將得到正確的結果,否則當前的代碼將失敗。

2

這是因爲在這行你是比較錯誤的東西:

if (tabell[i] < tabell[0]) 

應該

if (tabell[i] < minstetall)