2017-08-24 57 views
1

當編寫簡單方法資源以計算通過2維數組輸入的除法和餘數整數時,eclipse標記了方法類型不適用於參數的錯誤。簡單劃分+餘數方法錯誤

我正在創建一個實用程序.class來導入到其他.class文件中,所以我可以調用這些方法,而不是一次又一次地編寫長長的簡單數學運算。所有方法的參數都以數組形式輸入。

下面是方法和被調用的方法的代碼的副本。

static int iadd(int[] x) { 
    int y = 0; 
    for(int i = 0; i < x.length; i++) { 
     y += x[i]; 
    } 
    return y; 
} 

    static int divrem(int[][] x) { 
    for(int i = 0; i < x[0].length; i++) { 
     int a = iadd(x[0][i]); 
    } 
    for(int i = 0; i < x[1].length; i++) { 
     int b = iadd(x[1][i]); 
    } 

我也有添加雙打的代碼,但我不認爲我可以把雙倍的最接近的全部紅利。

static double dadd(double[] x) { 
    double y = 0; 
    for(int i = 0; i < x.length; i++) { 
     y += x[i]; 
    } 
    return y; 
} 

我敢肯定我錯過了一些愚蠢的東西。有人可以向我解釋如何解決這個問題嗎?

EDIT

我需要設置輸入參數到IADD()爲一個數組的一個整數。

+1

不確定你試圖在你的'divrem'方法中達到什麼效果 - 對於循環的每次迭代,變量'a'和'b'以及局部於'for'循環**和**也將被覆蓋 - 你想要'+ ='嗎? –

回答

1

iadd(int[] x)接受一個int數組,但你用一個int調用它。

iadd(x[0][i]); 

卸下[] deferences的人會通過一維int數組...

iadd(x[i]); 

我不知道你的數學正在努力實現這一目標可能不會產生正確的結果,但這是編譯時錯誤的原因。

+0

謝謝。這解決了這個問題。我是一個java新手,所以我試圖應用我最近學到的概念,這些概念被調用並聲明方法,數組和返回值。 –

0

對於初學者來說,你需要一維數組傳遞給iadd()但如果你只運行在array[0]array[1]您可以在divrem()弄死的循環。