2016-04-07 84 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

相关问题