2015-04-22 49 views
-1

我想求和单元格。我的意思是,围绕细胞。添加我要调用的单元格并在其周围添加值。这是我迄今为止所拥有的。如何求和矩阵内的单元格和环绕单元

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

此代码没有任何意义:

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); 
0

您也缺少方法和亚军的引用以及