我正在尝试创建一个函数来汇总2D数组的行。我已经有了代码,但是返回值似乎不起作用。只需要您的想法,因为我需要在24小时内完成:D
int sumRows(int ArrayR[][]){
int row=3;
int col=3;
int sumR = ArrayR[0][0];
//int [] sumR = new int[row];
for (int i = 0; i<row; i++){
for (int j = 0; j<col; j++){
sumR+=ArrayR[i][i];
}
}
return sumR;
}
谢谢!
答案 0 :(得分:1)
您正在对所有数字求和,但使用非零数字进行初始化。更改为:
int sumRows(int ArrayR[][]){
int row=3;
int col=3;
int sumR = 0;
for (int i = 0; i<row; i++){
for (int j = 0; j<col; j++){
sumR+=ArrayR[i][j];
}
}
return sumR;
}
答案 1 :(得分:0)
如果您想对矩阵的元素求和,那么您的代码中有2个问题:
您必须通过 0 初始化sumR
,否则索引[0][0]
处的元素将被添加两次:
int sumR = 0;
此外,在嵌套循环中还有2个控制变量i
和j
,但是在查找矩阵i
时,对列和行使用ArrayR
更改
sumR+=ArrayR[i][i];
到
sumR+=ArrayR[i][j];
专注于[i][j]
但是,如果要对矩阵的每一行求和,则必须从函数返回一个求和数组,并且必须将每行的求和分别存储在数组的元素中。您可以这样做:
int[] sumRows(int ArrayR[][]){
int row = ArrayR.length;
int[] sumR = new int[row];
for (int i = 0; i < row; i++){
int col = ArrayR[i].length;
sumR[i] = 0;
for (int j = 0; j < col; j++){
sumR[i] += ArrayR[i][j];
}
}
return sumR;
}