2017-03-22 14 views
0

我一直在用Java手動輸入2d數組。在Java中輸入並保存2d數組?

  • 首先,我創建關心矩陣的程序,是否有操縱行,使矩陣看起來更「自然」,又名看起來像一個方形,而不是在垂直放置列的方式該程序*(將提供截圖,不久)。其次,如何將手動輸入的二維數組存儲在主方法中的矩陣中,稍後將用於在程序中稍後使用矩陣執行操作?例如,如果用戶輸入了一個矩陣,並且想要找到它的逆矩陣,那麼如何從鍵盤存儲他的輸入以用於查找行列式(它具有處理存儲矩陣的單獨方法)。我一直得到零!

這裏是代碼和快照: Horrid looking matrices

Main方法要求提供尺寸和提供的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

「我一直得到零!」 - 您應該向我們展示如何嘗試使用輸入的矩陣。從該方法(順便說一下,名稱應該是小寫,以避免混淆,並且參數類型丟失)似乎是您在本地創建二維數組,並且不會返回它。嘗試返回數組並將引用存儲在適當的位置,以便其他方法可以訪問它。 – Thomas

+0

您好托馬斯,關於您的第一條評論:是的,我認爲它可以看起來更好看,而且Yash Soni的回答對我有幫助!另外,我將返回類型更改爲int [] [],它工作得很好!謝謝你的時間:) – Dunja

回答

0

對於印刷基質,使一個helper方法

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 : .... ; 
} 

並確保你讓你的矩陣一個靜態對象。這將幫助你操縱單個對象。而且,您可以使用臨時矩陣來反映對主要對象的更改。

希望這有助於, 告訴我,如果我錯過了什麼。