【发布时间】:2016-12-11 19:31:27
【问题描述】:
我试图创建最简单的矩阵 - 二维数组,但我的代码有问题,它有点工作,但不正确。 代码:
int result = 0;
int[][] matrix = new int[2][2];
for(int rows = 0; rows < matrix.length; rows++)
for(int cols = 0; cols < matrix[rows].length; cols++)
matrix[rows][cols] = (rows + cols);
System.out.println("matrix is: "+matrix);
result = matrix[0][0]*matrix[1][1]-matrix[0][1]*matrix[1][0];
System.out.println("Result is: "+result);
输出: 矩阵为:[[I@1db9742
结果是:-1
我有这个:
int result = 0;
char[][] matrix= new char[2][2];
for(int rows = 0; rows < 2; rows++)
for(int cols = 0; cols < 2; cols++)
matrix[rows][cols] = (char)('1' + rows * 2 + cols);
for(int rows = 0; rows < 2; rows++)
for(int cols = 0; cols < 2; cols++)
System.out.println("matrix is: "+matrix[rows][cols]);
result = matrix[0][0]*matrix[1][1]-matrix[0][1]*matrix[1][0];
System.out.println("Result is: "+result);
输出: 矩阵是:1
矩阵是:2
矩阵是:3
矩阵是:4
结果是:-2
但我不想要char,我想要整数(因为如果以后使用大矩阵计算会怎样)而且我不明白这部分:
('1' + rows * 2 + cols)
因为我从其他代码中复制了它。如何让第一个像第二个一样工作,括号中的那部分是什么(为什么这样写)?提前致谢!
我得到了我想要的 1 2 3 4 的好东西,但我还需要解释“('1' + rows * 2 + cols)”的含义。我想为矩阵二维数组获得 1 2 3 4 ,然后为结果获得 1*4-2*3 。也许'1'是从1开始,而不是从循环中的0开始并从数组中的1开始写入。我在其他一些代码中找到了它,而不是我的解决方案,第一个是我的并且无法正常工作。我补充说:
for(int cols = 0; cols < matrix[rows].length; cols++)
按照你的建议。
*我把它改写成英文。 很抱歉语言混乱。 我不明白为什么在计算之前循环打印矩阵时得到字符而不是二维数组。
【问题讨论】:
-
你想在这里做什么:(char)('1' + redovi * 2 + kolone)? '1' 应该是 1。你不能从这个语句中得到一个字符。
-
这不起作用:System.out.println("Rezultat je: "+rezultat);
-
对于矩阵。对于循环使用:
for(int redovi = 0; redovi < matrica.length; redovi++) for(int kolone = 0; kolone < matrica[redovi].length; kolone++) -
您应该切换到英文名称和控制台输出,因为它是编码的通用语言。虽然通过简单地阅读实现不难了解该算法的功能,但在提问时使用英语会很有帮助;尤其是当代码变得更复杂时。