2015-09-14 38 views
-1

所以我的问题是,在我的代码中,它说int min = a2 [0] [0]为什么它必须是这样的,而不是使用int min = 0;当我有它打印出0,但[0] [0]它打印出正确的答案..所以我只是好奇,为什么需要使用?谢谢! :)为什么我必须使用[0] [0]与二维数组为int min而不是仅仅= 0

public static int min2DArray(int[][] a2) { 
     int min = a2[0][0]; 
     for (int row = 0; row < a2.length; row++) { 
      for (int column = 0; column < a2[row].length; column++){ 
       if (a2[row][column] < 1){ 
        min = a2[row][column]; 
       } 
      } 
     } 
     return min; 
    } 

回答

0

如果您的二维数组有任何负值,int min = 0将是不准确的。实际上,如果大于0的值是实际的最小值,那么代码也不会起作用。你只需要一个幸运的情况下你min是0

+0

以及最低人数10所以你猜这就是为什么呵呵?那么从int min = 0到int min的差别究竟是什么?min = a2 [0] [0] – ThePyroMark

+1

只要数组中的值较小,min的初始值就是无关紧要的。只有当它们全部变大时,该算法才会更新'min'(假设与'min'比较而不是1)。真正的问题是与1达成的比较。 – Andreas

+1

@Andreas嘿,别假装成我。 ;-) – Andreas

1

你的代码中有一个错误:如果您的数据包含3, 7, 9和初始化

if (a2[row][column] < min){ 

if (a2[row][column] < 1){ 

min0,那么它们都不会低于初始值,因此得到0

可以初始化minInteger.MAX_VALUE,你会被罚款,也可以将其初始化为第一值,即

int min = a2[/*row=*/0][/*column=*/0]; 
+0

感谢您的收获和解释。很好! +1 – ThePyroMark

相关问题