在处理中添加2D阵列的行

时间:2018-08-04 02:07:47

标签: java processing

我正在尝试创建一个函数来汇总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;
}

谢谢!

2 个答案:

答案 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个控制变量ij,但是在查找矩阵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;
}