2017-10-17 54 views
-4

我試圖獲取數組的最小值,最大值和平均值。我能夠成功獲得最小和最大值,但平均功能給我帶來麻煩。以數組爲參數並返回平均值

無法弄清楚我的代碼出錯了。

package basics; 

public class Arrays { 

    public static void main(String []args) { 



     int[] numbers; 
     numbers=new int[]{24,29,17, 46, 44, 35, 37, 13, 1}; 

     int max=getMax(numbers); 
     System.out.println(max); 

     int min=getMin(numbers); 
     System.out.println(min); 

     int avg=getAverage(numbers); 
     System.out.println(average); 

     } 


    public static int getMax(int[] inputArray){ 
      int maxValue = inputArray[0]; 
      for(int i=1;i < inputArray.length;i++){ 
       if(inputArray[i] > maxValue){ 
       maxValue = inputArray[i]; 
       } 
      } 
      return maxValue; 
      } 

    public static int getMin(int[] inputArray){ 
      int minValue = inputArray[0]; 
      for(int i=1;i<inputArray.length;i++){ 
       if(inputArray[i] < minValue){ 
       minValue = inputArray[i]; 
       } 
      } 
      return minValue; 

    public static int getAverage(int[] inputArray) { 
      int getAverage = inputArray[0]; 
      int sum=0; 
      for (i = 1; i < inputArray.length; i++) { 
        sum = sum + inputArray[i]; 
       } 
       return sum/inputArray.length; 
      } 

     }  

} 
+0

你怎麼知道它不工作?也許你可以[編輯]你的問題,包括預期與實際行爲? – azurefrog

+0

這就是說,你的數組的第一個元素有什麼特別之處,你沒有把它包括在平均值中? – azurefrog

+0

@azurefrog我曾經犯過這個小錯誤,並且一直花費在調試它;) – vikarjramun

回答

2

您還沒有加入inputArray第一項的變量sum。另外,返回類型必須是雙精度才能獲得小數值。

您可以嘗試更改sum類型以加倍,因爲您沒有使用getAverage變量,請將其刪除並使循環遍歷inputArray中的所有項。