2017-03-22 1 views
0

私はJavaの2d配列の手動入力に苦労してきました。Javaで2次元配列を入力して保存しますか?

  • 私は行列に関係するプログラムを作成していてまず、行列を作るために行と列を操作する方法があるが別名ではなく内に垂直に配置されているよりも、正方形のように見えるように、より「自然」に見えますプログラム*(まもなくスクリーンショットを提供します)。
  • 第2に、メインメソッドのマトリックスに手動で入力された2D配列を保存するにはどうすればよいのですか?後でプログラムで行列を操作するために使用されますか?たとえば、ユーザーが行列を入力して逆行列を見つけたい場合、行列から入力を格納して行列式を見つけるために使用する方法(格納された行列を扱う別の方法があります)。私はゼロを得続けます!ここで

コードおよびスナップショットです: Horrid looking matrices

主な方法は、寸法を要求し、するSystem.out.printlnのものを提供します。行列を印刷するための

static void Manual(dimension){ 
    int n=dimension; 
    int mat[][]=new int [n][n]; 
    Scanner scan= new Scanner(System.in); 
    for(int row=0; row<n;row++) 
    {for(int col=0; col<n;col++) 
     {  
      mat[row][col]=scan.nextInt(); 

     } 
     System.out.print("\n"); 
    } 
+0

私はあなたのスクリーンショットで恐ろしい探しているマトリックスを見ません...あなたのマトリックスの視覚化ではなく手動入力であるように見える別の行に '1 2 3 4'を意味するのですか?ユーザーが循環できる4つの入力フィールドのグリッドが必要ですか? – Thomas

+0

「私はゼロを得続けます! - 入力した行列の使い方を見せてください。その方法(btw、混乱を避けるために名前は小文字でなければならず、パラメータの型がない)は、2D配列をローカルに作成して返していないようです。適切な場所に配列を戻してその配列に参照を格納して、他のメソッドにアクセスできるようにしてください。 – Thomas

+0

こんにちはトーマス、あなたの最初のコメントについて:はい、私は視覚的に見栄えが良いと思った、そしてヤッシュソーニの答えが私を助けました!また、戻り値の型をint [] []に変更しても問題ありません。御時間ありがとうございます:) – Dunja

答えて

0

、操作を実行する方法について答える 使用スイッチの場合には1つのヘルパーメソッド

public void printMatrix(int[][] matrix){ 
    int rows = matrix.length; 
    int cols = matrix.length; 
    for(int i=0; i<rows; i++){ 
     for(int j=0; j<cols; j++) 
      System.out.print(matrix[i][j]+" "); 
     System.out.println(); 
    } 
} 

します

switch(inputChar){ 
    case 'a': computeDeterminant(); break; 
    case 'b': computeInverse(); break; 
    case 'c': .... ; break; 
    default : .... ; 
} 

そして、あなたはあなたの行列を作ることを確認してください静的オブジェクトそれはあなたが単一のオブジェクトを操作するのに役立ちます。また、一時的な行列を使用して、メインオブジェクトの変更を反映させることができます。

私が何かを忘れた場合は を教えてください。

関連する問題