【问题标题】:Inputting and saving 2d arrays in Java?在Java中输入和保存二维数组?
【发布时间】:2023-03-10 11:27:01
【问题描述】:

我一直在努力在 Java 中手动输入二维数组。

  • 首先,当我正在创建一个与矩阵有关的程序时,是否有一种方法可以操作行和列以使矩阵看起来更“自然”,也就是看起来像一个正方形,而不是在程序中垂直放置 * (稍后将提供屏幕截图)。
  • 其次,如何将手动输入的二维数组存储到 main 方法中的矩阵中,以便稍后在程序中对矩阵执行操作?例如,如果用户输入了一个矩阵,并且想要找到它的逆矩阵,我如何存储他的键盘输入以用于查找行列式(它有一个单独的方法来处理存储的矩阵)。我总是得零!

以下是代码和快照:

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");
    }

【问题讨论】:

  • 我在您的屏幕截图中没有看到任何可怕的矩阵...,您的意思是1 2 3 4 在单独的行上似乎是手动输入而不是矩阵的可视化?您是否期望用户可以循环浏览由 4 个输入字段组成的网格?
  • “我总是得零!” - 您可能应该向我们展示您如何尝试使用输入的矩阵。从那个方法(顺便说一句,名称应该是小写以避免混淆并且缺少参数类型)似乎您在本地创建了二维数组并且不返回它。尝试返回数组并在适当的地方存储对该数组的引用,以便其他方法可以访问它。
  • 嗨,Thomas,关于您的第一条评论:是的,我认为它在视觉上看起来会更好,Yash Soni 的回答帮助了我!另外,我将返回类型更改为 int[][] 并且效果很好!感谢您的宝贵时间:)

标签: java arrays matrix multidimensional-array linear-algebra


【解决方案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 案例:

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

并确保将矩阵设为静态对象。这将帮助您操作单个对象。并且,您可以使用临时矩阵来反映对主对象的更改。

希望这会有所帮助, 如果我错过了什么,请告诉我。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-07
    • 2017-02-21
    • 1970-01-01
    • 1970-01-01
    • 2014-03-24
    • 2014-01-04
    相关资源
    最近更新 更多