помощ за задача Trade comissions - Java
Зравейте, моля за помощ и съвет, относно решението на задачата. Не мога да си открия грешката. Правих всякакви промени и не излиза.
Ето го условието:
Фирма дава следните комисионни на търговците си според града, в който работят и обема на продажбите s:
Град |
0 ≤ s ≤ 500 |
500 < s ≤ 1 000 |
1 000 < s ≤ 10 000 |
s > 10 000 |
Sofia |
5% |
7% |
8% |
12% |
Varna |
4.5% |
7.5% |
10% |
13% |
Plovdiv |
5.5% |
8% |
12% |
14.5% |
Напишете конзолна програма, която чете име на град (стринг) и обем на продажби (десетично число) , въведени от потребителя, и изчислява и извежда размера на търговската комисионна според горната таблица. Резултатът да се изведе закръглен с 2 цифри след десетичната точка. При невалиден град или обем на продажбите (отрицателно число) да се отпечата „error“. Примери:
вход |
изход |
|
вход |
изход |
|
вход |
изход |
|
вход |
изход |
Sofia 1500 |
120.00 |
Plovdiv 499.99 |
27.50 |
Varna 3874.50 |
387.45 |
Kaspichan -50 |
error |
Ето го и моето решение:
import java.util.Scanner; public class TradeComissions { public static void main(String[] args) { Scanner console = new Scanner(System.in); String town = console.nextLine().toLowerCase(); double sales = Double.parseDouble(console.nextLine()); double comission = 0; if (town.equals("Sofia")) { if (sales >= 0 && sales <=500) { comission = 0.05 * sales; } else if (sales > 500 && sales <= 1000) { comission = 0.07 * sales; } else if (sales > 1000 && sales <= 10000) { comission = 0.08 * sales; } else if (sales > 10000) { comission = 0.12 * sales; }else { System.out.println("error"); } } else if (town.equals("Varna")) { if (sales >= 0 && sales <= 500) { comission = 0.045 * sales; } else if (sales > 500 && sales <= 1000) { comission = 0.075 * sales; } else if (sales <= 10000) { comission = 0.1 * sales; } else if (sales > 10000) { comission = 0.13 * sales; }else { System.out.println("error"); } }else if (town.equals("Plovdiv")) { if (sales >= 0 && sales <= 500) { comission = 0.055 * sales; } else if (sales <= 1000) { comission = 0.08 * sales; } else if (sales <= 10000) { comission = 0.12 * sales; } else if (sales > 10000) { comission = 0.145 * sales; }else { System.out.println("error"); } }else { System.out.println("error"); } System.out.printf("%.2f", comission); } }
Благодаря. Аз междувременно направих корекции и проверките са ми верни. Judge обаче ми даа 94 точки и грешка при Пловдив. Наистина не мога да открия тази грешка...
ето го новото ми решение:
мога да предложа решението на C# първоначално не бях проверил когато комисионата ми е отрицателна и judge ми даваше 94/100.После го оправи и ми даде 100/100 .
https://pastebin.com/XtPKgySF
На Пловдив, където ти е "sales > 10000" , умножи по 0.0145, а не по 0.145. Виж дали така ще се получи.