【问题标题】:The matrix doesn't print correctly [duplicate]矩阵打印不正确[重复]
【发布时间】:2021-05-14 21:56:12
【问题描述】:

我一直在尝试显示一个矩阵 3xn, n 由一个短语介绍的长度决定。 问题本身是,而不是像这样为 abcdef 显示 3x2 矩阵 screenshot

我使用标准方式打印它,其中行使用for,列使用另一个内部:

for (int i = 0; i < v1idk.length; i++) {
    for (int j = 0; j < v1idk.length; j++) {
        System.err.println(Arrays.toString(v1idk[i])
                + Arrays.toString(v1idk[j]));
    }

v1idk 是一个 int 变量。是不是跟System.err.println有关系,还是这个位没有问题,我应该去其他地方找?

如果有必要这里是code的其余部分

【问题讨论】:

  • 非常类似于idownvotedbecau.se/imageofcode ...您的控制台输出也是纯文本。因此,请将其提供为文本,而不是屏幕截图。而且你的描述没有意义。 v1idk 绝对不是一个 int,而是一个 int 数组。非常不同。
  • 并提示:研究 Java 中的多维数组是如何工作的。含义:这里有一组数组,这就是为什么使用一个索引或两个索引会有所不同。

标签: java matrix multidimensional-array


【解决方案1】:

在您的代码中,Arrays.toString(v1idk[i]) 将矩阵的第 I 行表示为字符串,Arrays.toString(v1idk[j]) 将矩阵的第 J 行表示为字符串。

假设v1idk = {{1, 2}, {3, 4}, {5, 6}}。这里v1idk[0]{1, 2}v1idk[1]{3, 4}等等。

我希望你的问题现在已经清楚了。

我认为你的问题可以这样解决:

for (int i = 0; i < v1idk.length; i++) {
    for (int j = 0; j < v1idk[0].length; j++) {
        System.err.println(v1idk[i][j]);
    }
}

//Output is 123456

如果要添加空格并在不同的行上查看不同的行,请遵循以下代码:

for (int i = 0; i < v1idk.length; i++) {
    for (int j = 0; j < v1idk[0].length; j++) {
        //Adding space between consecutive elements
        System.err.println(v1idk[i][j] + " ");
    }
    System.out.println(); //adds new line after each row
}

//Output is 123456

这里,v1idk.length 表示行数,v1idk[0].length 表示每列的长度。

【讨论】:

    猜你喜欢
    • 2018-09-25
    • 1970-01-01
    • 2016-07-20
    • 1970-01-01
    • 1970-01-01
    • 2021-05-23
    • 1970-01-01
    • 2020-06-19
    • 1970-01-01
    相关资源
    最近更新 更多