2015-11-15 177 views
-1

因此,我正在研究codechef上的這個ATM問題,並且我的程序在我的編譯器上運行,並且滿足所有問題的要求,但是codechef的編譯器不斷給我這個NZEC運行時錯誤,我無法弄清楚爲什麼。這裏是代碼:我如何解決它?java運行時錯誤(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

您不能在CodeChef中使用掃描儀對象。改用BufferedReader。

+0

但將是解決這一問題? –

+0

@MichaelSaneke是的 – Doc

+0

你能否請你糾正我的代碼,然後用BufferReader因爲我仍然無法得到它。請和我一起,仍然是初學者 –

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

保持編碼:)