Loading...
XuTkO avatar XuTkO 2 Точки

Цена за транспорт

Моля да ми кажете къде ми е грешката, дава ми в джъдж 83%, като 3 и 4 проверка са грешни. Не знам кои са тези провекри, но всичко въведено си излиза както трябва да е на изхода.Та задачата е:

 

Студент трябва да пропътува n километра. Той има избор измежду три вида транспорт:
⦁    Такси. Начална такса: 0.70 лв. Дневна тарифа: 0.79 лв. / км. Нощна тарифа: 0.90 лв. / км.
⦁    Автобус. Дневна / нощна тарифа: 0.09 лв. / км. Може да се използва за разстояния минимум 20 км.
⦁    Влак. Дневна / нощна тарифа: 0.06 лв. / км. Може да се използва за разстояния минимум 100 км.
Напишете програма, която чете броя километри n и период от деня (ден или нощ), въведени от потребителя, и изчислява цената на най-евтиния транспорт.
Вход
От конзолата се четат два реда:
⦁    Първият ред съдържа числото n – брой километри – цяло число в интервала [1…5000].
⦁    Вторият ред съдържа дума “day” или “night” – пътуване през деня или през нощта.
Изход
Да се отпечата на конзолата най-ниската цена за посочения брой километри. Резултатът да се форматира до втория знак след десетичната запетая.
Примерен вход и изход
Вход    Изход    Обяснения
5
day    4.65    Разстоянието е под 20 км  може да се ползва само такси. Началната такса е 0.70 лв. Понеже е през деня, тарифата е 0.79 лв. / км. С такси цената е: 0.70 + 5 * 0.79 = 4.65 лв.
7
night    7.00    Разстоянието е под 20 км  може да се ползва само такси. Началната такса е 0.70 лв. Понеже е през нощта, тарифата е 0.90 лв. / км. С такси цената е: 0.70 + 7 * 0.90 = 7.00 лв.
25
day    2.25    Разстоянието е над 20 км  може да се ползва автобус, но не може да се ползва влак. Автобусът е най-евтиния възможен вариант. С автобус цената е: 25 * 0.09 = 2.25 лв.
180
night    10.80    Разстоянието е над 100 км  може да се ползва влак. Влакът е най-евтиният възможен вариант за пътуване. С влак цената е: 180 * 0.06 = 10.80 лв.

 

Решението ми е:

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        double n = Double.parseDouble(scanner.nextLine());
        String daytime = scanner.nextLine();
        double sum =0.0;

        if (n<=20 && daytime.equals("day")) {
            sum = 0.70 + 0.79 * n;
        } else if (n<=20 && daytime.equals("night")) {
            sum = 0.70 +0.90 * n;
        }
         if (n > 20 && n <100) {
            sum = n * 0.09;
         } else if (n >=100) {
            sum = n * 0.06;
         }
        System.out.printf("%.2f",sum);
    }
}
Тагове:
0
Module: Java Advanced
XuTkO avatar XuTkO 2 Точки

Благодаря, това е :)

0
nikolaypetkov1970 avatar nikolaypetkov1970 -8 Точки

ЗДРАВЕЙ, ПРИЯТЕЛ! АЗ МИСЛЯ, ЧЕ В ПЪРВИЯ IF(), ТРЯБВА ДА ИМА ВТОРИ КОЙТО ДОПЪЛНИТЛНО ДА ТИ ПРОВЕРЯВА ДЕНЯ И НОЩА, КОГАТО СИ В СЛУЧАЯ ЗА ТАКСИТО! И ДА 20 КМ Е СЪЩО ЗА АВТОБУСА! ПОЗДРАВИ! НИКИ.

 

import java.util.Scanner;

public class PriceForTranspor {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        double distance = Double.parseDouble(scanner.nextLine());
        String daytime = scanner.nextLine();
        double sum = 0.0;

        if (distance < 20) {

            if (daytime.equals("day")) {
                sum = 0.70 + 0.79 * distance;
            } else if (daytime.equals("night")) {
                sum = 0.70 + 0.90 * distance;
            }

        } else if (distance >= 20 && distance < 100) {
            sum = distance * 0.09;

        } else if (distance >= 100) {
            sum = distance * 0.06;
        }

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

    }

}
 

0
21/09/2017 08:53:32
XuTkO avatar XuTkO 2 Точки

Здравей,

вместо да слагаш два if-а, може да използваш един с две условия в него, с &&. Може и твоето да стане, пробвай в judge, но малко си удължаваш кода(съвсем малко).Иначе грешката ми беше,че на таксито съм сложил =, а не на автобуса

0
Kostadinvang avatar Kostadinvang 1 Точки
package conditionalStatementsMoreExercises;

import java.util.Scanner;

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


        int km  = Integer.parseInt(scanner.nextLine());
        String timeOfDay = scanner.nextLine();
        double price = 0;

        if (km < 20){
            if (timeOfDay.equals("day")){
                 price = 0.70+(0.79*km);
            }else if (timeOfDay.equals("night")){
                price = 0.70+ (0.90 * km);
            }
        }else if (km<100){
            if (timeOfDay.equals("day") || timeOfDay.equals("night")){
                price  = km * 0.09;
            }

        }else {
            if (timeOfDay.equals("day") || timeOfDay.equals("night")){
                price = km * 0.06;

            }
        }


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

след доста борба и дебъг--> ето го 100/100

20 трябва да влезе в бус ,а влака трябва да влезе в равно на 100 или по голямо

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