Loading...
Emilenkova avatar Emilenkova 0 Точки

помощ за задача 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);


        }

    }



 

Тагове:
0
Programming Basics
Attanasov avatar Attanasov 17 Точки
package ComplexConditions;

import java.util.Scanner;

public class Demo {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        String town = scanner.nextLine().toLowerCase();
        double sells = Double.parseDouble(scanner.nextLine());

        double comission = 0;

        if (sells >= 0 && sells <= 500) {
            if (town.equals("sofia")) {
                System.out.printf("%.2f", sells * 0.05);
            } else if (town.equals("varna")) {
                System.out.printf("%.2f", sells * 0.045);
            } else if (town.equals("plovdiv")){
                System.out.printf("%.2f", sells * 0.055);
            } else {
                System.out.println("Error");
            }
        } else if (sells > 500 && sells <= 1000) {
            if (town.equals("sofia")){
                System.out.printf("%.2f", sells * 0.07);
            } else if (town.equals("varna")){
                System.out.printf("%.2f", sells * 0.075);
            } else if (town.equals("plovdiv")){
                System.out.printf("%.2f", sells * 0.08);
            } else {
                System.out.println("Error");
            }
        } else if (sells > 1000 && sells <= 10000) {
            if (town.equals("sofia")) {
                System.out.printf("%.2f", sells * 0.08);
            } else if (town.equals("varna")){
                System.out.printf("%.2f", sells * 0.10);
            } else if (town.equals("plovdiv")) {
                System.out.printf("%.2f", sells * 0.12);
            } else {
                System.out.println("Error");
            }
        } else if (sells > 10000) {
            if (town.equals("sofia")) {
                System.out.printf("%.2f", sells * 0.12);
            }
            else if (town.equals("varna")) {
                System.out.printf("%.2f", sells * 0.13);
            }
            else if (town.equals("plovdiv")) {
                System.out.printf("%.2f", sells * 0.145);
            } else {
                System.out.println("Error");
            }
        } else {
            System.out.println("error");
        }
    }
}

Аз съм я решил по този начин. Дано съм бил полезен :) 

0
Emilenkova avatar Emilenkova 0 Точки

Благодаря. Аз междувременно направих корекции и проверките са ми верни. Judge обаче ми даа 94 точки и грешка при Пловдив. Наистина не мога да открия тази грешка...

ето го новото ми решение:

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 if (sales < 0) {
                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 if (sales < 0) {
                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 if (sales < 0){
                System.out.println("error");
            }

        }else {
            System.out.println("error");
        }

            System.out.printf("%.2f", comission);


        }

    }



0
denis.argatski avatar denis.argatski 25 Точки

мога да предложа решението на C# първоначално не бях проверил когато комисионата ми  е отрицателна и judge ми даваше 94/100.После го оправи и ми даде 100/100 .

https://pastebin.com/XtPKgySF

0
Attanasov avatar Attanasov 17 Точки

На Пловдив, където ти е "sales > 10000" , умножи по 0.0145, а не по 0.145. Виж дали така ще се получи.

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.