0

我正在介绍 Java 编程,我有以下任务。我认为我的代码是正确的,但我得到了错误的答案。我需要找出每辆车的总成本,然后“买”便宜的那辆。假设我要行驶 50000 英里:

  • 燃料成本 = 4 美元
  • 行驶里程 = 50000
  • 汽车 1 的购买价格 = 15000 美元
  • 汽车 2 的购买价格 = $30000
  • 汽车 1 的 Mpg = 10
  • 汽车 2 的 Mpg = 50

汽油成本=(行驶里程/英里/加仑)*燃料成本

总成本 = 购买价格 + gas 成本

这是我的代码:

public class Test
{
    public static void main(String[] args)
    {
        int milesDriven = 50000;
        int mpg1 = 10;
        int mpg2 = 50;
        int pricePerGallon = 4;
        int purchasePrice1 = 15000;
        int purchasePrice2 = 30000;
        int gasCost4Car1 = (milesDriven / mpg1) * pricePerGallon;
        int gasCost4Car2 = (milesDriven / mpg2) * pricePerGallon;
        int total4Car1 = (purchasePrice1 + gasCost4Car1);
        int total4Car2 = (purchasePrice2 + gasCost4Car2);

        if(total4Car1 < total4Car2) 
        {
            System.out.println(total4Car1 + gasCost4Car1);
        }
            else
            {
            System.out.println(purchasePrice2 + gasCost4Car2);
        }

       System.out.println(purchasePrice2 + gasCost4Car2); // just to see the output for car 2
    }
}

我得到的输出是 34000,我相信汽车 1 的输出应该是 35000,汽车 2 的输出应该是 34000 我不明白我得到了错误的答案。注意:我不能发布图片(出于声誉原因)或视频,但如果需要,我愿意提供这些信息。谢谢你。

4

3 回答 3

1

问题出在这一行:

System.out.println(total4Car1 + gasCost4Car1);

total4Car1已经包括gasCost4Car1.

这是关于ideone打印的演示34000

于 2013-09-24T00:18:45.100 回答
0

Cleaned up a little bit, gives correct results:

public static void main(String[] args) {
    int milesDriven = 50000;
    int mpg1 = 10;
    int mpg2 = 50;
    int pricePerGallon = 4;
    int purchasePrice1 = 15000;
    int purchasePrice2 = 30000;
    int gasCost4Car1 = milesDriven / mpg1 * pricePerGallon;
    int gasCost4Car2 = milesDriven / mpg2 * pricePerGallon;
    int total4Car1 = purchasePrice1 + gasCost4Car1;
    int total4Car2 = purchasePrice2 + gasCost4Car2;

    System.out.println("Total car 1: " + total4Car1);
    System.out.println("Total car 2: " + total4Car2);

    if (total4Car1 < total4Car2) {
        System.out.println("Car 1 is cheaper: " + total4Car1);
    } else {
        System.out.println("Car 2 is cheaper: " + total4Car2);
    }
}
于 2013-09-24T00:57:23.970 回答
0

total4car1 不小于 total4car2,所以它打印 car 2 的总数 ie purchaseprice2 + gascost4car2,然后在 中再次打印 System.out.println(purchasePrice2 + gasCost4Car2); // just to see the output for car 2。应该输出什么?

于 2013-09-24T00:22:50.490 回答