2016-04-29 13 views
0

で行列を作成する..私は、次のコードは、私はJavaで行列を作成するJava

public class Tester { 

    public static void main(String[] args) { 

     int[][] a = new int[2][0]; 
     a[0][0] = 3; 
     a[1][0] = 5; 
     a[2][0] = 6; 
     int max = 1; 
     for (int x = 0; x < a.length; x++) { 
      for (int b = 0; b < a[x].length; b++) { 
       if (a[x][b] > max) { 
        max = a[x][b]; 
        System.out.println(max); 

       } 

       System.out.println(a[x][b]); 

      } 

     } 

     System.out.println(a[x][b]); 


    } 
} 

を実装しましたコードを修正するためのさまざまな方法がありましたが、何も役に立たなかった 私のコードを修正してください。

ありがとう

+0

第2次元が次元のない2次元行列を作成することは実際には意味がありません。決定:1次元配列、または各次元のサイズが少なくとも1の2次元 – lazary

+0

b変数が 'for'ループの外側に表示されないようにするには – MGoksu

答えて

4

配列をインスタンス化するときは、インデックスではなくサイズを指定します。だから、0番目のインデックスを使用するには、1

int[][] a = new int[3][1]; 

の少なくともサイズこれは、括弧の最初のセットのための有効なインデックスが0、1、2であることを意味し、3×1「マトリックス」をインスタンス化しますが必要です。 2番目の括弧セットの唯一の有効なインデックスは0です。これは、コードに必要なもののようです。

public static void main(String[] args) { 

    // When instantiating an array, you give it sizes, not indices 
    int[][] arr = new int[3][1]; 

    // These are all the valid index combinations for this array 
    arr[0][0] = 3; 
    arr[1][0] = 5; 
    arr[2][0] = 6; 

    int max = 1; 

    // To use these variables outside of the loop, you need to 
    // declare them outside the loop. 
    int x = 0; 
    int y = 0; 

    for (; x < arr.length; x++) { 
     for (y = 0; y < arr[x].length; y++) { 
      if (arr[x][y] > max) { 
       max = arr[x][b]; 
       System.out.println(max); 
      } 
      System.out.println(arr[x][y]); 
     } 
    } 

    System.out.println(arr[x][y]); 
} 
+0

、ありがとう – Ali12

1

最初の配列に3つの要素を格納しています。

このint [] [] a =新しいint [3] [1];

関連する問題