2016-04-07 114 views
1

嘗試創建一個將查找所有元素總和的二維數組。由於我使用驅動程序來檢查我的工作,因此我不會將我的數字輸入到二維數組中。到目前爲止,我有這個 - 但它不會complie。我究竟做錯了什麼?查找二維數組中所有元素的總和

public static double sum2d (double[ ][ ] array2d) 
{ 
    int sum = 0; 
    for (int row=0; row < array2d.length; row++) 
    { 
     for (int col=0; col < array2d[row].length; col++) 
     { 
      sum = sum + array2d [row][col]; 
     } 
    } 

    return sum; 
} 
+0

什麼是編譯錯誤? – Gendarme

回答

6

你的方法被聲明爲返回一個double,但你正在返回sum這是一個int

編輯:由於@samrap在評論中指出,你的代碼在這裏有格式錯誤。你缺少一個開口大括號{

+2

假設他不缺少那個開放方法大括號,這就是答案。 – samrap

+0

就是這樣!謝謝! – cargoboom

2

你的方法簽名

public static double sum2d (double[ ][ ] array2d) { <----- put that in. 

此外,您還需要聲明sumdouble後失蹤梅開二度。

double sum = 0; 

注意,如果一個方法返回double,並sum的類型是int,您可以return sum。這裏的問題是,sum + array2d [row][col];double,所以不能在沒有轉換的情況下返回int(但這不是你想要做的)。

+0

是不是可以寫'double d = 1.0; int a = d;'那樣沒有投射? – Gendarme

+0

@Gendarme不,不會編譯。它需要是'int a =(int)d;',但是它會刪除小數部分。 –

0

聲明總和爲double而不是int

相關問題