【问题标题】:Obtain the integers already randomly generated into matrices获取已经随机生成的整数成矩阵
【发布时间】:2015-11-05 01:34:26
【问题描述】:

我正在编写一个程序来对矩阵进行加法、减法、除法和乘法运算。该程序随机生成各种数字并将它们放入二维数组(Matrix1 和 Matrix2)中。我已经把那部分写下来了,现在我想将成瘾逻辑添加到当前填充的矩阵中**但我无法弄清楚如何**获得在循环中随机生成的数字 - 在循环之外;操纵它们。

我确信这是一个简单的逻辑理解,但尝试在循环之外访问我的 matrix1/matrix2 [i] [j] 是行不通的。

这是我的源代码:


package matrix;
import java.util.Scanner;

public class Matrix {
public static void main(String[] args) {
    Scanner inputReader = new Scanner(System.in);

    int par1, par2;
    int count = 0;

    System.out.print("Please enter the desired size of the first parameter of the matrix: ");
    par1 = inputReader.nextInt();
    System.out.print("Please enter the desired size of the second parameter of the matrix: ");
    par2 = inputReader.nextInt();

    int[][] matrix1 = new int[par1][par2];
    int[][] matrix2 = new int[par1][par2];

    System.out.println("Size of parameter 1 is: "+ "["+par1 + "]");
    System.out.println("Size of parameter 2 is: "+ "["+par2 + "]");
    System.out.println();
    System.out.println("Matrix 1: ");

    for (int i = 0; i < par1; i++) {
        for (int j = 0; j < par2; j++) {
            matrix1[i][j] = (int)(Math.random()*10);
             System.out.print(matrix1[i][j] + " ");
            }
        System.out.println();
        }

    System.out.println();
    System.out.println("Matrix 2: ");

    for (int i = 0; i < par1; i++) {
        for (int j = 0; j < par2; j++) {
            matrix2[i][j] = (int)(Math.random()*10);
             System.out.print(matrix2[i][j] + " ");
            }
        System.out.println();
        }

    System.out.println("The addition of the two matrices are: ");
       System.out.println(matrix2[i][j]); <---THIS IS WHAT WILL NOT WORK
    }
}

【问题讨论】:

    标签: java arrays matrix logic


    【解决方案1】:

    i 和 j 是迭代器。换句话说,它们的唯一功能是遍历数组。您可以在循环中使用它们来索引数组,但除此之外它们存在于循环中。迭代器填充数组后,它们仍应保存数字,因此,只需使用。

    System.out.println(Arrays.deepToString(matrix2));
    

    【讨论】:

    • 这是否允许我操纵二维数组中的特定位置?或者这只是显示了它们的内容?
    • @colt 不,它不允许您操作数组中的任何内容。这就是循环的用途。
    • 此外,您正在尝试做的事情需要函数(方法)来进行加法、减法等。除非您是出于自己的知识而这样做,否则您应该看看番石榴,这将大大简化流程或者可以为创建自己的方法提供灵感。
    • 我明白了。你的意思是已经在java中构建的方法/库吗?因为我主要是为了好玩而做这个程序,并试图弄清楚如何对它进行硬编码:)。因此,如果我无法操纵它们,我是否会在当前循环中建立一个循环?这可能行得通吗?在打印出当前随机生成的矩阵之后,只需在那个将添加/sub/man/和 div :3 的循环之后构建另一个循环?这就是我的想法。谢谢你的建议!
    • @colt 是的,但不要只是建立一个循环。构建一个将两个 MD 数组作为参数的方法,然后将循环放入该方法中。
    【解决方案2】:

    鉴于您声明 ij 的位置,它们的范围仅限于各自的 for 循环。因此,您不能在这些循环之外使用它们。因此,您有问题的代码行将无法编译。

    【讨论】:

      猜你喜欢
      • 2016-06-30
      • 2019-10-14
      • 1970-01-01
      • 2017-03-26
      • 1970-01-01
      • 2015-11-26
      • 2016-02-15
      • 2012-02-01
      • 2012-09-01
      相关资源
      最近更新 更多