2014-12-13 83 views
-2

在我的代碼中,我試圖輸入10個數字,它輸出最小數字,它輸出最大數字,它沒有,我試過在最大算法中更改<和>但它不起作用。有人對我應該怎麼做有什麼建議嗎? 在此先感謝當我輸入我的號碼只有最小值是不是最大值

import javax.swing.JOptionPane; 
public class Results { 
    public static void main (String args []){ 

     //Variables 
     //Set up Array 
     int arr[]; //Declare Array 
     arr = new int [10]; 
     int min = Integer.MAX_VALUE; 
     int max = Integer.MIN_VALUE;; 

     //Input 
     //Set up loop 

     //Quiz 1 
     for(int i = 0; i<10;i=i+1){ 
     arr[i]=Integer.parseInt(JOptionPane.showInputDialog(null, "Please enter a number for quiz 1")); 

     } 


     //Minimum 


     for (int i = 0; i < min; i++) { 
      if (arr[i] < min) { 
       min = arr[i]; 
      } 
      } 

     //Maximum 


     for (int i = 0; i > max; i00) { 
      if (arr[i] > max) { 
      max = arr[i]; 
      } 
      } 

     //Output 
     JOptionPane.showMessageDialog(null, "The minimum is " +min); 
     JOptionPane.showMessageDialog(null, "The maximum is " +max); 







     } 



    } 
+2

你可以張貼代碼編譯? 'for(int i = 0; i> max; i00)'。這當然不是你正在尋找的條件(對於兩個循環)。 – 2014-12-13 16:56:43

+0

代碼確實編譯 – 2014-12-13 17:06:05

+2

我懷疑'for(int i = 0; i> max; i00)'編譯。 – 2014-12-13 17:06:45

回答

1

您的循環檢查病情最小/最大這是不對的。所以,如果你有一個像1,2,0號和你正在努力尋找最小值最大值與現有代碼,您環路分鐘將是:

i =0, i<MAX integer value 
assign min as 1 
i=1, i<1 
it will exit and you wont get 0 as output 

同樣適用於最大條件檢查循環。

更改您的for循環:

for (int i = 0; i < arr.length; i++) { 
    if (arr[i] < min) { 
     min = arr[i]; 
    } 
} 

for (int i = 0; i < arr.length; i++) { 
    if (arr[i] > max) { 
     max = arr[i]; 
    } 
} 
+0

而不是僅僅交出一些代碼,你能至少解釋什麼是不同的,爲什麼? – csmckelvey 2014-12-13 17:00:45

+0

我同意@Takendarkk _「你的for循環檢查最小/最大的條件是錯誤的_ _但爲什麼?如果操作員提出這個問題,那當然是因爲他不明白他看到了什麼問題。嘗試努力解釋原因並使其成爲更好的答案(帶有小例子或解釋)。 – 2014-12-13 17:03:11

+0

@Takendarkk現在希望它清楚 – SMA 2014-12-13 17:05:56

相關問題