2012-01-10 70 views
3

我有這個代碼,但它不起作用!如何從Java中的參數中有一個數組的方法返回值?

public class Trial 
{ 
    public static void main (String [] args) 
    { 
     int average; 
     int m = 0; 

     int [] nums = {1,6,8,9,10,60,72}; 

     average = getAverage(int [] nums); 
    } 

    public static int getAverage(int [] a) 
    { 
     int sum = 0; 
     for(int i=0; i<a.length; i++) 
      sum = sum +a[i]; 

     int avg = sum/a.length; 
     return avg; 
    } 
} 

問題在哪裏?我需要通過調用計算平均值的方法來獲取該數組的平均值。

+1

什麼不適用於它? – 2012-01-10 19:44:07

+0

刪除通話中的聲明,只傳遞「nums」。 – 2012-01-10 19:44:28

+0

你有什麼問題? – 2012-01-10 19:44:29

回答

8

改變你的方法調用:

average = getAverage(nums); 
+0

謝謝..這是我的錯誤 – AbdullahR 2012-01-10 19:56:08

+0

不客氣。 – 2012-01-10 19:57:06

1
average = getAverage(int [] nums); //this is wrong 

average = getAverage(nums); //this is right. Just sintaxis. 
+0

謝謝。它現在可以工作:) – AbdullahR 2012-01-10 19:55:28

3

我看到兩個問題:

  1. average = getAverage(int [] nums)應該讀average = getAverage(nums)
  2. 該函數返回一個int。您可能需要考慮使用浮點數學計算結果。否則,你會截取最接近的int的答案。
+0

是的,它的工作原理!愚蠢的錯誤:(是的,我需要它作爲最接近的整數 – AbdullahR 2012-01-10 19:54:30

+0

到最近?所以你需要做一個圓形或截斷或東西,因爲這行int avg = sum/a.length;可能會引發你一個例外,當你得到一個浮點數 – 2012-01-10 19:58:22

+0

@Mr。不,它不會拋出異常,它會靜靜地截斷 – NPE 2012-01-10 20:00:53

0

avg可以是浮點值,但您的實現將始終返回整數。

考慮使用浮點值sumavg並將返回類型更改爲double

相關問題