使用For语句-Java分配矩阵值



我正在HackerBank上工作,这是一个允许学生上传家庭作业代码的平台,然后该平台对我们的代码进行一些随机测试。在这个机会上,我的老师要求我根据HackerBank的输入创建一个矩阵,然后用这个平台的更多输入填充它。

我创建这个代码是为了创建一个具有HackerBank想要的维度的矩阵,并用平台生成的值重新填充它,但我的代码上似乎有一个错误,我没有看到。

它给了我这个错误:

Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:862)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.nextInt(Scanner.java:2117)
at java.util.Scanner.nextInt(Scanner.java:2076)
at Solution.main(Solution.java:14)

我的代码:

public class Solution {
public static void main(String[] args) {

Scanner prompt = new Scanner(System.in);
int[][] array = new int [prompt.nextInt()+1][prompt.nextInt()];

// Create matrix
for (int a = 0; a < array.length; a++){
for (int b = 0; b < array[a].length; b++){
array[a][b] = prompt.nextInt();          /*This is the line 14*/
}
}

for (int h=0; h < array.length; h++){ 
for(int c=0; c < array[h].length; c++){ 
System.out.printf("%5d",array[h][c]);
}
System.out.println("");
} } }

扫描仪抛出NoSuchElementException时,意味着您正试图在到达输入末尾时从扫描仪读取。

尝试在for循环中的nextInt之前使用hasNextInt

NoSuchElementException在这种情况下表示没有更多的令牌要读取。你在输入中提供了足够的值吗?

请参阅:https://docs.oracle.com/javase/8/docs/api/java/util/Scanner.html#nextInt--

最新更新