在2d数组的每一行中查找最小值

时间:2015-08-24 20:55:36

标签: java multidimensional-array

我目前正在研究并遇到一个问题,要求在二维数组的每一行中找到最小值......然后将所有最小值放在一个数组中。 我已经编写了一些代码但该方法在控制台上产生了一个非常奇怪的输出,而不是正确的结果。

我在这个2d阵列上测试了它           的 INT [] []数组= {{3,1,8},                        {10,12,2},                        {5,7,4'-}}; ,我应该得到的输出是 [1,2,4] ,而是我得到 [我@ 7852e922

有人可以告诉我我做错了吗?

这是代码..

  public static int [] min_row(int[][] n){

  int [] result = new int[n.length];
  int min=0;


  for(int i=0;i<n.length;i++){


       for(int j=0;j<n[0].length;j++){

           if(n[i][j]<n[i][min]){
               min=j;
           }
           result[i]=n[i][min];
       } 


  }

  return result;
  }

2 个答案:

答案 0 :(得分:1)

我怀疑你是在打印数组对象本身(请注意,这里最好提供你的整个代码,因为代码的另一部分与这个问题有关。我不得不猜测),即

int[] result = min_row(someArray);
System.out.println(result);

你不能这样做,你需要使用一个循环打印出每个元素,例如:

for(int i=0; i<result.length;i++)
   System.out.println(result[i]);

答案 1 :(得分:0)

&#13;
&#13;
 public static int [] min_row(int[][] n){

  int [] result = new int[n.length];


  for(int i=0;i<n.length;i++){
       int min = Integer.MAX_VALUE;  //initial min with MAX int value
       for(int j=0;j<n[i].length;j++){

           if(min > n[i][j])    // if element smaller than min  
           {
               min= n[i][j];    //assign a new min value
           }
          
       } 
       result[i]= min;          //save the min for the row

  }

  return result;
  }
&#13;
&#13;
&#13;