这是这里的第一篇文章,如果我的问题不符合要求的标准,请原谅我。
我编写了一段代码,它从两个独立的文件中获取两个矩阵的输入,并执行乘法并将数据输出到一个新文件中。
它给出了2x3或3x3矩阵的完美输出。如果输入4x4矩阵,将数组索引从绑定运行时异常中提取出来。我不明白为什么我会动态创建索引
我在第40行从绑定异常中得到一个数组索引。
我犯了个错误。
发布于 2015-03-29 21:41:23
可能是因为这个
for (int i = 1; i < mat1rows + 1; i++) {
line = br.readLine();
String[] colvals = line.split(" ");
for (int j = 1; j < mat1cols; j++) {
mat1vals[i][j] = Integer.parseInt(colvals[j - 1]);
}
}
最后一次迭代的i = mat1rows
,即OOB。将for (int i = 1; i < mat1rows + 1; i++)
更改为for (int i = 1; i < mat1rows; i++)
发布于 2015-03-29 23:57:31
正如您在分配中使用的那样,结果矩阵的维度是mat1rows
x mat2cols
。因此,在resltmat[i][j]
的计算中,索引i
有界mat1rows
(check),索引j
有上界mat2cols
(fail)。因此,将j
的范围从mat1cols
更改为mat2cols
。
https://stackoverflow.com/questions/29338693
复制相似问题