0

これをやろうとしている:練習アプリ.

自分でテストすると完全に動作するように見えますが、コードをアップロードすると正しくないとマークされます (プログラムは実行されますが、出力は正しくありません-それ以上の情報はありません)。

2 つの入力を取得するだけで、 with と bal と check if with 5%=0 && bal>=with+0.5. 両方の条件が true の場合、 が返されますbal-(with+0.5)

また、これを行うためのより効率的な (より高速なコード実行) 方法はありますか?

import java.util.Scanner;

class ATM {
    public static void main(String[] args){
        Scanner in=new Scanner(System.in);
        final float with=in.nextFloat();
        final float bal=(float) ((in.nextFloat())-(with+0.5));
        if (bal>=0 && with%5==0){
            System.out.print(bal);
        }
    }
}
4

2 に答える 2

3

出力が正しくありません。精度が間違っています。2 桁が必要であることが明確に指定されており、出力は例で期待されるものとは異なります。

入力:

30 120.00

期待される出力:

89.50

あなたの出力

89.5

編集:引き出しが5の倍数でない場合は何も出力しないため、おそらく2番目のテストにも失敗します。引き出しなしで残高を出力することが期待されています。

于 2013-10-10T14:59:02.613 に答える
1

println()オートグレーダーは、出力の最後に新しい行、つまりvsを期待していることをお勧めしますprint()

System.out.println(bal);

しかし、上記の@Steinarが指摘しているように、次のようにする必要があります。

System.out.println(String.format("%.02f", bal));
于 2013-10-10T14:53:03.230 に答える