这让我很困惑,但这也很有趣!
我想循环遍历数组中9个元素的网格,将它们全部乘以1/9。然后,我想找到这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;
}
}
当然,非常感谢任何建议。
答案 0 :(得分: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
答案 1 :(得分: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;
}
}