java运行时错误(NZEC)

时间:2015-11-15 13:28:15

标签: java

所以我在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);
      }
    }
  }
}

2 个答案:

答案 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);
      }
    }
  }
}

继续编码:)