所以我想构建一个接收两个矩阵元素的程序,并给出这两个矩阵的乘积。到目前为止,我进行了一些实验,创建了一个矩阵并使用了#34; readInts" -manual。首先,我想确保程序实际上接收用户输入的元素,因此我想打印出第一个矩阵作为一个整体(然后更进一步,当然)。这包含在此代码中:
int rows = readInt("Number of rows: ");
int columns = readInt("Number of columns: ");
int [][] m = new int[rows][columns];
int [] elements = readInts("Please type in the elements: ");
for(int = 0; i < m.length; i++) {
print(elements[i], 5);
}
现在,我还没有理解的是我如何解释&#34; m.length&#34;。经过一些测试,我发现它指的是行数,所以例如当我定义3行并输入数字1,2,3,4,5时,我只收到1,2,3 ,所以该计划切断了其余部分。我猜他实际上应该引用列数,所以当我定义m时我必须切换[rows]和[columns],但这是违反直觉的,因为你总是命名行数第一。另外,我不知道迟早会不会出现其他问题。那么,还有另一种方法可以在不开始切换[rows]和[columns]的情况下执行此操作吗?
答案 0 :(得分:1)
因为你知道你可以为循环做的行和列。
int rows = readInt("rows");
int columns =readInt("columns");
int [][] m = new int[rows][columns];
for (int i = 0; i < rows; i++) {
int n[]=readInts("enter 3 numbers:");
for (int k = 0; k < columns; k++) {
m[i][k] = n[k];
}
}
没有必要像我一样使用扫描仪(这里没有正常工作)。然而 如果你正确阅读字符串,这应该会给你想要的结果