2013-09-24 3 views
0

Я принимаю введение в Java-программирование, и у меня есть следующее назначение. Я думаю, что мой код правильный, но я получаю неправильный ответ. Мне нужно найти общую стоимость для каждого автомобиля и «купить» более дешевый. Предположим, что я путешествую 50000 миль:Как решить эту логическую ошибку (новичок)?

  • стоимость топлива = $ 4
  • пробегу = 50000
  • Покупка цена для автомобиля 1 = $ 15000
  • цена
  • покупки для автомобиля 2 = $ 30000
  • Mpg для автомобиль 1 = 10
  • Mpg для автомобиля 2 = 50

газ стоимость = (пройденных миль/Mpg) * Fu эш стоимость

общая стоимость = цена покупки + газ стоимость

и вот мой код:

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 Я не понимаю, что я получаю неправильный ответ. Примечание: я не могу отправлять фотографии (по причинам репутации) или видео, но я готов предоставить эту информацию, если это необходимо. Спасибо.

ответ

1

Проблема заключается в этой строке:

System.out.println(total4Car1 + gasCost4Car1); 

total4Car1 уже включает в себя gasCost4Car1.

demo on ideone34000.

0

всего4car1 не меньше total4car2, поэтому он печатает итоговое значение для автомобиля 2 i.e. purchaseprice2 + gascost4car2, а затем печатает его снова в System.out.println(purchasePrice2 + gasCost4Car2); // just to see the output for car 2. Что должно выводиться?

0

Подчищены немного, дает правильные результаты:

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); 
    } 
} 
Смежные вопросы