神秘的Java运行时错误

神秘的Java运行时错误,java,runtime-error,Java,Runtime Error,我写了一个很短的程序来解决一个简单的编程竞赛问题(http://acm.sgu.ru/problem.php?contest=0&problem=184)但是由于某种原因,我在第21次测试中遇到了一个运行时错误(它没有具体说明运行时错误是什么)。所以我重写了代码,现在它没有给出运行时错误,但是我不明白为什么这个代码应该工作,而原来的代码没有。以下是工作代码: Scanner scan = new Scanner(System.in); int[] arr1 = new int[3]; int[]

我写了一个很短的程序来解决一个简单的编程竞赛问题(http://acm.sgu.ru/problem.php?contest=0&problem=184)但是由于某种原因,我在第21次测试中遇到了一个运行时错误(它没有具体说明运行时错误是什么)。所以我重写了代码,现在它没有给出运行时错误,但是我不明白为什么这个代码应该工作,而原来的代码没有。以下是工作代码:

Scanner scan = new Scanner(System.in);
int[] arr1 = new int[3];
int[] arr2 = new int[3];
for (int i = 0; i <= 2; i++) arr1[i] = scan.nextInt();
for (int i = 0; i <= 2; i++) arr2[i] = scan.nextInt();
System.out.println(Math.min(arr1[0]/arr2[0], Math.min(arr1[1]/arr2[1], arr1[2]/arr2[2])));
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String[] arr1 = in.readLine().split(" ");
String[] arr2 = in.readLine().split(" ");
int flour = Integer.parseInt(arr1[0])/Integer.parseInt(arr2[0]);
int milk = Integer.parseInt(arr1[1])/Integer.parseInt(arr2[1]);
int cabbage = Integer.parseInt(arr1[2])/Integer.parseInt(arr2[2]);
System.out.println(Math.min(cabbage, Math.min(flour, milk)));

起初,我尝试在非工作代码中将BufferedReader更改为Scanner并在.nextLine()中使用,但没有成功。然后我想可能有一个被零除的情况,但问题条件排除了它,这应该仍然是工作代码中的一个问题,所以我不知道为什么第一个工作,而第二个不工作。

当输入仅由空格分隔,没有任何换行符时,它会失败。您在非工作代码中获得NPE,或者在等待输入时,由于您的程序阻塞,您超出了此测试的0.5s时限。

您能告诉我们21号测试的功能吗?很遗憾,我不能。它提供的所有信息都是错误类型。