0

尝试这样做:练习 app

当我自己测试它时,它似乎工作得很好,但是当我上传我的代码时,我被标记为不正确(程序运行但输出不正确 - 没有更多信息)。

它所做的只是获取两个输入,with 和 bal 并检查 if with 5%=0 && bal>=with+0.5。如果两个条件都为真,则返回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

输出不正确,精度错误。明确指定需要两位数,并且您的输出与示例中的预期不同:

输入:

30 120.00

预期输出:

89.50

你的输出

89.5

编辑:它也可能无法通过第二次测试,因为如果提款不是 5 的倍数,您不会输出任何内容。预计会输出余额而无需任何提款。

于 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 回答