我想要求细胞。我的意思是,周围的细胞。添加我调用的单元格,并使用它周围的值添加该值。这是我到目前为止所做的。
import java.util.Arrays;
import static java.lang.System.*;
public class MatrixSummingRunner {
public static void main(String args[]) {
int[][] mat = { { 0, 1, 0, 0, 0, 1, 0 }, { 1, 8, 4, 3, 4, 5, 1 },
{ 0, 2, 7, 8, 9, 8, 0 }, { 0, 6, 7, 6, 2, 5, 0 },
{ 0, 6, 7, 8, 9, 5, 0 }, { 1, 5, 4, 3, 2, 3, 1 },
{ 0, 1, 0, 0, 0, 1, 0 } };
out.println("Sum of the given values, at {4,2} and the values around it"
+ MatrixSumming(mat, 4, 2));
out.println("Sum of the given values, at {3,3} and the values around it"
+ MatrixSumming(mat, 3, 3));
out.println("Sum of the given values, at {5,4} and the values around it"
+ MatrixSumming(mat, 5, 4));
out.println(toString(mat));
}
}
那是跑步者,现在我的想法是什么。
import java.util.*;
public class MatrixSumming {
private int[][] m = { { 4, 2 }, { 3, 3 }, { 5, 4 } }; // load in the matrix
// values
public int sum(int[][] mat, int x, int y) {
int sum = 0;
for (int item : mat) {
Sum = getValueAt(x, y) + getValueAt(x++, y) + getValueAt(x--, y)
+ getValueAt(x--, y++) + getValueAt(x--, y--)
+ getValueAt(x++, y++) + getValueAt(x++, y--);
}
return sum;
}
}
显然那不起作用。它将它们视为个体变量,给我带来了巨大的问题......
答案 0 :(得分:0)
这段代码没有任何意义:
for(int item : mat)
{
Sum=getValueAt(x,y) + getValueAt(x++,y) + getValueAt(x--,y) + getValueAt(x--,y++) + getValueAt(x--,y--) + getValueAt(x++,y++) + getValueAt(x++,y--);
}
对于初学者,您要修改此函数内的x和y变量。相反,只需在适当的地方使用+1和-1。
其次,您从未定义过Sum变量,并且每次循环递增时都会覆盖该值。相反,您需要将值添加到循环触发之前的现有总和中。
这是一个如何计算数组总和的例子:
int sum = 0;
for(int x : array){
sum = sum+x;
}
System.out.println(sum);
答案 1 :(得分:0)
你也缺少一个方法和对跑步者的引用