温我有这段代码:
import java.util.Scanner;
import java.util.Arrays;
public class Ex02 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
int [] matrixSize = new int [4];
System.out.println("Insert the values matrix (matrixA_lines,MatrixA_Rows,matrixB_lines,MatrixB_Rows");
matrixSize = matrixFill(4);
System.out.println(Arrays.toString(matrixSize));
}
public static int[] matrixFill(int sizeOne){
int i;
Scanner sc = new Scanner(System.in);
int [] matrixTemp = new int [sizeOne];
for (i = 0; i<sizeOne; i++){
matrixTemp[i] = sc.nextInt();
}
return matrixTemp;
}
}
这一切都按预期工作。创建一维数组,填充1,2,3,4并且数组是打印的。问题是我想使用一个bidimentsional数组。我修改了代码并且它给出了错误。 这是修改后的代码:
import java.util.Scanner;
import java.util.Arrays;
public class Ex02 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
int [][] matrixSize = new int [1][4];
System.out.println("Insert the values matrix (matrixA_lines,MatrixA_Rows,matrixB_lines,MatrixB_Rows");
matrixSize[][] = matrixFill(1,4);
System.out.println(Arrays.deepToString(matrixSize));
}
public static int[][] matrixFill(int sizeOne, int sizeTwo){
int i;
Scanner sc = new Scanner(System.in);
int [][] matrixTemp = new int [sizeOne][sizeTwo];
for (i = 0; i<sizeOne; i++){
matrixTemp[0][i] = sc.nextInt();
}
return matrixTemp[sizeOne][sizeTwo];
}
}
第21行(matrixSize [] [] = matrixFill(1,4);)错误是:
cannot find symbol
symbol: class matrixSize
location: class Ex02.Ex02
not a statement
';' expected
在第34行(返回matrixTemp [sizeOne] [sizeTwo];)错误是:
incompatible types
required: int[][]
found: int
有人可以告诉我我做错了什么吗?刚开始学习Java。
此致
favolas
答案 0 :(得分:2)
从matrixSize和返回值中删除[][]
。
matrixSize = matrixFill(1,4);
和
return matrixTemp;
答案 1 :(得分:0)
matrixSize[][] = matrixFill(1,4);
这不是[][]
的有效位置。第一个例子说得对:
matrixSize = matrixFill(1,4);
答案 2 :(得分:0)
您在新代码的return语句中添加了“[sizeOne] [sizeTwo]”;你不需要这个,因为matrixTemp已经被声明为二维数组。你改变它的方式是在数组中发送一个元素。