2012-11-25 62 views
3

我正在製作一個方法,它獲取數組的列表並查找數字的平均值。 我知道我的方法起作用,因爲我只是將它從主要方法移到「平均」方法。我只是有問題讓數組與該方法一起工作。方法中的Java數組

我不知道如果我錯了,通過調用該方法,通過average(a);,或者是因爲該方法被寫成public static void average(double[] a){

可能有人點我的方向是正確的?

public class Ass10{ 

    public static void main(String[] args) { 
     System.out.println("asdf"); 
     int a[] = {1, 2, 3,4}; 
     average(a); 
     } 

    public static void average(double[] a){ 
     int sum = 0; 

     for (int counter = 0; counter<a.length;counter++){ 
      sum += a[counter]; 
     } 
       System.out.println(sum/a.length) 

     } 
+4

的爲什麼'平均(雙[]一個)'和不'平均(INT [ ] a)'? – Cratylus

+0

究竟是什麼錯誤?我認爲Cratylus有你的答案 – giorashc

+0

謝謝Cratylus,那就是問題所在!我需要它們都是double或int。 – user1730056

回答

1

您可以嘗試更改public static void average(double[] a)在Java public static void average(int[] a)

1

intdouble是元,而不是對象。進一步他們的陣列不是協變的。 (如果A擴展B,則數組平均值的協方差,則A []擴展B [])

因此,您不能使用double[],其中int[]是必需的。 這應該做public static void average(int[] a){

其次,sum += a[counter];會造成精度sum損耗鍵入inta是類型double