首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数组中元素和的计算

数组中元素和的计算
EN

Stack Overflow用户
提问于 2013-09-19 16:34:53
回答 6查看 3.9K关注 0票数 0

我有一个类Mold,它的构造函数如下

代码语言:javascript
复制
public Mold(int[][] mold){
    this.mold = mold; 
  }

我还有一个方法sum(),如下所示:

代码语言:javascript
复制
public int sum(){
    int sum = 0;
    for( int i = 0; i <matrix.length; i++) {
      sum += matrix[i][i];
    }
    return sum;
  }

我想要做的是计算Mold中所有元素的总和,但是我不知道在sum += matrix[i][i];部分中用什么来代替'i‘。我甚至可能是用完全错误的方式做的。我被困在这件事上已经有一段时间了,我似乎弄不明白。

我想要得到的输出的一个例子是:int[][] test1 = { { 10, 5 }, { 2, 8 } };应该给出一个25的和方法。

如果有人能把我推向正确的方向,那就太好了!非常感谢,

EN

回答 6

Stack Overflow用户

发布于 2013-09-19 16:42:42

你这样做:

假设一个由3x3元素组成的二维数组,这些是它们的坐标(行、列):

代码语言:javascript
复制
[0,0][0,1][0,2]
[1,0][1,1][1,2]
[2,0][2,1][2,2]

您只使用一个循环和循环中的一个变量进行计数的方式如下:

i = 0 (计算elemen 0,0)

代码语言:javascript
复制
[*][ ][ ]
[ ][ ][ ]
[ ][ ][ ]

i = 1 (计算elemen 1,1)

代码语言:javascript
复制
[ ][ ][ ]
[ ][*][ ]
[ ][ ][ ]

i = 2 (计算elemen 2,2)

代码语言:javascript
复制
[ ][ ][ ]
[ ][ ][ ]
[ ][ ][*]

你需要用一个双圈来做和。循环每一行,对于被循环的每一行,您必须对该行的每一列进行循环。

就像这样:

代码语言:javascript
复制
for (i = 0; i < maxRows; i++){
 for (j = 0; j < maxCols; j++{
  //
 }
}
票数 2
EN

Stack Overflow用户

发布于 2013-09-19 16:37:57

按照您的方式,您将只对[0][0][1][1][2][2]、.、[i][i]和大多数元素进行汇总。

数组中有两个维度,所以需要两个循环。

在现有的for循环中创建另一个for循环,并使用不同的循环变量j。当它到达当前行的长度:matrix[i].length的末尾时,它将停止。当添加到sum时,使用两个循环变量:matrix[i][j]

票数 1
EN

Stack Overflow用户

发布于 2013-09-19 16:38:22

在当前的方法中,您只是在对角线(0,0)、(1,1)、(2,2)中添加元素。如果处理数组的数组,可以使用 loop两次:一个用于遍历数组中的元素,另一个用于遍历数组中的元素:

代码语言:javascript
复制
int sum = 0;
for(int[] moldElement : mold) {
    for(int element : moldElement) {
        sum += element;
    }
}
return sum;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18900331

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档