1

这让我很困惑,但它也很有趣!

我想遍历数组中 9 个元素的网格,将它们全部乘以 1/9。然后,我想找到这 9 个元素的总和,并用计算为总和的值替换每个单独的元素。完成此操作后,我想继续讨论接下来的九个元素。为了澄清,我希望在下面的代码中将所有 9 个元素都更改为 myVal。

到目前为止,我已经在一个循环位中得到了循环,但我不知道如何返回并将每个值替换为所有值的总和。这是我的代码:-

 previousx = 0; 
 previousy= 0;
for (int x = previousx; x < previousx+4; x++) {
    for(int y = previousy; y < previousy+4; y++) {
        y = y*(1/9);
        yVal += y;
      }
 }

当然,任何建议都将不胜感激。

4

2 回答 2

2

请注意,这y是一个int,您可能想要一个类型的变量double并对其执行double计算:

double myDouble;
for(int y = previousy; x < previousy+4; y++) {
   myDouble = y*((double)1/9);
   yVal += myDouble;
}

正如@ZouZou 提到的,由于Java 中数字的默认值为int,1/9将为0。您需要将一侧转换为double

((double)1/9)

另一边将被隐式转换。

另请注意,您的内部循环不会结束:

for(int y = previousy; x < previousy+4; y++) {
                       ↑
                 Should be y
于 2013-11-03T09:30:27.803 回答
0
int i = 0;
int setNum = 1;
for (< exit condition >) {

    // Insert code here to find myVal
    // for current set of 9 elements

    for (; i < 9 * setNum; i++) {
        arr[i] = myVal;
    }
    setNum++;
}

编辑:如果arr是二维数组

for (int i = 0; i < arr.length; i++) {

    // Insert code here to find myVal
    // for current set of 9 elements

    for (int j = 0; j < 9; j++) {
        arr[i][j] = myVal;
    }
}
于 2013-11-03T09:50:52.317 回答