基本上代码显示了Alicepoints和BobPoints之间的区别。但是当我返回它们时,它只是没有运行。
但是当我运行代码时会显示此错误。
"Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:907)
at java.util.Scanner.next(Scanner.java:1530)
at java.util.Scanner.nextInt(Scanner.java:2160)
at java.util.Scanner.nextInt(Scanner.java:2119)
at Solution.solve(Solution.java:12)
at Solution.main(Solution.java:33)"
这是意料之外的。代码如下所示
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
import java.math.*;
import java.util.regex.*;
public class Solution {
static int[] solve(){
// Complete this function
Scanner in = new Scanner(System.in);
int a0 = in.nextInt();
int a1 = in.nextInt();
int a2 = in.nextInt();
int b0 = in.nextInt();
int b1 = in.nextInt();
int b2 = in.nextInt();
int pointsAlice,pointsBob;
pointsAlice = ((a0>b0)?1:0)+ ((a1>b1)?1:0)+ ((a2>b2)?1:0) ;
pointsBob = ((a0<b0)?1:0)+ ((a1<b1)?1:0)+ ((a2<b2)?1:0) ;
int ar[] = new int[2];
ar[0]=pointsAlice;
ar[1]=pointsBob;
return ar;
}
public static void main(String[] args) {
Solution m=new Solution();
int rr[] = new int[2];
rr = m.solve();
System.out.println(rr[0] +" " + rr[1]);
}
}
答案 0 :(得分:0)
代码工作正常,但有几点。
您实际上不需要创建Solution
的对象来调用solve()
方法。您可以按照下面的说明执行此操作,因为它是static
。
您无需创建新的int[]
来存储solve();
int rr[] = Solution.solve(); //note that I didn't create a new array.
答案 1 :(得分:0)
问题与返回值无关。问题是您尝试读取的输入不是程序可以处理的形式。
如果您使用以6个整数开头并且它们之间有空格的输入运行它,则所写的代码将起作用。如果你给它别的东西,其中一个nextInt
调用会抛出InputMismatchException
(如果一个标记不是整数)或NoSuchElementException
(如果你到达结束时)流)。然后它会崩溃,因为你没有处理这些异常。