在完成一个问题时,我遇到了一个问题,每当用户提供超过 3 个输入时,我就会收到运行时错误。下面给出了 5 个输入行的示例
Input:
2 5
5 1
2 1
3 1
1 1
4 1
In the first line "5" is number of test cases .
我的代码仅针对前 3 行输入运行,我希望任何人都可以帮助我识别代码中的问题,以便它适用于用户给出的任意数量的输入行。
import java.util.Scanner;
public class Test{
public static void main(String[]args){
Scanner robo=new Scanner(System.in);
int num=robo.nextInt();
int array [][]=new int [5][2];
for(int i=0;i<array.length;i++){
for(int j=0;j<array.length;j++){
array[i][j]=robo.nextInt();
}
}
int word=num;
String result="";
if(array[0][0]>num){
System.out.print("NO");
}else{
for(int i=0;i<num1-1;i++){
word=array[i][1]+word;
if(array[i+1][0]<word){
result="YES";
}else{
result="NO";
}
}
System.out.println(result);
}
}
}
我想我看到了你的问题:
在此循环中:
for(int i=0;i<array.length;i++){
for(int j=0;j<array.length;j++){
array[i][j]=robo.nextInt();
}
}
i
从 0 到 4 运行,j
也从 0 到 4 运行,因为数组的长度是 5,即使 5 个数组条目中的每一个都是大小为 2 的数组。“外部”数组的 array.length
仍然是 5。因此,一旦 j
变为 2 或更大,array[i][j]
就会抛出异常,因为每个内部数组只有 2 个元素。
我是一名优秀的程序员,十分优秀!