从2D数组中的行添加或减去1

时间:2014-02-16 18:44:44

标签: java arrays rest sum 2d

所以我得到了这个5x5数组的2D数组,我必须减去或添加1到用户选择更改的行之一。当用户输入更改第一行时,一切都很好,但是如果行数较高,例如2,则会增加1以上。

数组值为

 1 -2  1  0  0
-1  0  4  2  0
 0 -4  1 -1  0
 0  1 -1 -1 -2
 0 -3  1 -1  0

我用来添加1的方法如下

public static void plusRow (int i){
       for(int row = 0; row < board.length; row++){
           int[] rows = board[i];
           for(int col = 0; col < board.length; col++){
               rows[col] = rows[col] + 1; 
               System.out.print(board[row][col] + " ");
           }
           System.out.println("");
       }
   }

我的输出值,例如2,就像这样

1 -2 1 0 0 
1 2 6 4 2 
0 -4 1 -1 0 
0 1 -1 -1 -2 
0 -3 1 -1 0 

什么时候应该

1 -2 1 0 0 
0 1 5 3 1 
0 -4 1 -1 0 
0 1 -1 -1 -2 
0 -3 1 -1 0 

2 个答案:

答案 0 :(得分:0)

问题是你的嵌套for循环运行的次数是函数输入int“i”

的次数

答案 1 :(得分:0)

您的算法效率非常低 - 您不需要在此处执行嵌套循环。将您的输出和数学分解为两个不同的循环。

for(int j =0; j<boards[i].length; j++){
   boards[i][j] += 1;
}

然后写一个双循环到输出板。实际上,这应该是一个单独的功能