所以我在codechef上处理这个ATM问题,我的程序在我的编译器上运行并满足所有问题的要求,但是codechef的编译器一直给我这个NZEC运行时错误,我无法弄清楚为什么。这是代码:我该如何解决?
import java.util.Scanner;
public class ATM {
public static final double charge = 0.50;
public static void main(String args[]) {
int x,y;
Scanner keyboard = new Scanner(System.in);
while (keyboard.hasNext()) {
x = keyboard.nextInt();
y = keyboard.nextInt();
if( y > x + charge && x % 5 == 0) {
double balance = y - x - charge;
System.out.println(balance + "0");
} else {
System.out.println(y);
}
}
}
}
答案 0 :(得分:0)
您无法在CodeChef中使用scanner对象。改为使用BufferedReader。
答案 1 :(得分:0)
首先,您没有为输入选择适当的数据类型。您的第二个输入,即y应为double type
,而不是int type
。然后,您不会以Codechef所需的正确格式打印您的答案。 Codechef严格遵循接受答案的格式。在这里,你的答案必须显示double / float数据类型的输出,正好有两位小数。
在这里,我纠正了你的错误:
import java.util.Scanner;
class ATM {
public static final double charge = 0.50;
public static void main(String args[]) {
int x;
double y;
Scanner keyboard = new Scanner(System.in);
while (keyboard.hasNext()) {
x = keyboard.nextInt();
y = keyboard.nextDouble();
if( y > x + charge && x % 5 == 0) {
double balance = y - x - charge;
System.out.printf("%.2f",balance);
} else {
System.out.printf("%.2f",y);
}
}
}
}
继续编码:)