2016-11-01 11 views
0

10次元の2次元配列があり、その最小値と最大値を計算する方法を知りました。私は最小値を1d配列に保存し、最大値を別の1d配列に保存します。私はこれを行う方法を見つけましたが、私の1次元配列はちょうど数の代わりに16 0のような値に等しい0の束を印刷します。2次元配列の列の最大値を求めて1次元配列に保存する

import java.io.*; 
import java.util.Arrays; 
import java.util.Scanner; 

public class F { 

public static void main (String args []) throws Exception 
{ 
      File a = new File("C:\\users\\James\\desktop\\A10Array.txt"); 
    Scanner scan = new Scanner(a); 
    int[][] arr = new int [10][10]; 

     for (int i=0;i<10;i++) 
      for (int j=0;j<10;j++) 
       arr[i][j] = scan.nextInt(); 
     for (int i=0;i<10;i++) 
     { 
      for (int j=0;j<10;j++) 
      { 
       System.out.print(arr[i][j] +"\t"); 
      } 
      System.out.println(); 
     } System.out.println(); 

     for (int i = 0; i < 10; i++) { 
      int minInCol = arr[0][i]; 
      int maxInCol = arr[0][i]; 
      double sum = 0; 
      for (int j = 0; j < 10; j++) { 
       sum+=arr[j][i]; 
       if (minInCol > arr[j][i]) { 
        minInCol = arr[j][i]; 
       } 

       if (maxInCol < arr[j][i]) { 
        maxInCol = arr[j][i]; 
       } 

      } 
      int[]min = new int [minInCol]; 
      int[]max = new int [maxInCol]; 
       System.out.print(Arrays.toString(max)); 

     } 


scan.close(); 
} 
} 
+1

あなたは 'new int [minInCol];と思いますか?行う? – talex

+0

配列minとmaxをforループの外側に割り当て、minInColとmaxInColを配列minとmaxでmin [i] = minInCol、max [i] = maxInColとして保存する必要があります。 minとmax配列のサイズは2d配列の列数と同じにする必要があります – saurabheights

答えて

0
int[]min = new int [minInCol]; 
int[]max = new int [maxInCol]; 
System.out.print(Arrays.toString(max)); 

長さが最小値と最大値であるとあなただけの配列を作成しますが、配列を初期化しないでください。したがって、デフォルトで空配列の出力は0です