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

задача 7." Магазин за играчки" от "Проверки - лаб" Java

Здравейте. В IntelliJ всичко работи - пробвал съм и с повече от 50 играчки и с по малко от 50 играчки , както и ако парите стигат за екскурзия и ако не стигат за екскурзия и всичко ми го изчислява както трябва - с отстъпки , без отстъпки , с достатъчна сума и с недостатъчна сума.Проблема е че judge ми дава само 90/100т. Какъв е проблема според вас? 

import java.util.Scanner;

public class ToyShop {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        double vacationPrice = Double.parseDouble(scan.nextLine());
        int puzzles = Integer.parseInt(scan.nextLine());
        int dogs = Integer.parseInt(scan.nextLine());
        int bears = Integer.parseInt(scan.nextLine());
        int minions = Integer.parseInt(scan.nextLine());
        int trucks = Integer.parseInt(scan.nextLine());
        double puzzlesPrice = puzzles * 2.6;
        int dogsPrice = dogs * 3;
        double bearsPrice = bears * 4.10;
        double minionsPrice = minions * 8.20;
        int trucksPrice = trucks * 2;
        double totalIncomeWithoutRent=(puzzlesPrice+dogsPrice+bearsPrice+minionsPrice+trucksPrice) * 0.90;
        int totalToys = puzzles+dogs+bears+minions+trucks;
        if (totalIncomeWithoutRent >= vacationPrice) {
            if (totalToys >=50) {
                double discount = totalIncomeWithoutRent * 0.75;
                double moneyLeft = discount - vacationPrice;
            System.out.printf("Yes! %.2f lv left.", moneyLeft); }
            if (totalToys < 50) {
                double moneyLeft = totalIncomeWithoutRent - vacationPrice;
                System.out.printf("Yes! %.2f lv left.", moneyLeft);
            }
        }else if (totalIncomeWithoutRent<vacationPrice) {
            if (totalToys >=50) {
                double discount = totalIncomeWithoutRent * 0.75;
                double moneyNeeded = vacationPrice - discount;
                System.out.printf("Not enough money! %.2f lv needed.", moneyNeeded);
            }
            if (totalToys<50 ) {
                double moneyNeeded = vacationPrice - totalIncomeWithoutRent;
                System.out.printf("Not enough money! %.2f lv needed.", moneyNeeded);
            }

        }
}}
Тагове:
0
Programming Basics
svephoto avatar svephoto 1191 Точки

Здравей, mariqn_qrkov,

 

Нямаш нужда от толкова много проверки, преосигурил си се. laugh След

int totalToys = puzzles + dogs + bears + minions + trucks;

проверяваш просто дали

totalToys >= 50

- ако "Да", си смяташ намалението

totalIncomeWithoutRent *= 0.75;

и след това ти остава само

if (totalIncomeWithoutRent < vacationPrice) {
...
} else {
...
}

където си правиш сметката

double moneyNeeded = vacationPrice - totalIncomeWithoutRent;

ако не стигат парите или с обратното изваждане, ако стигат и си печаташ съответното съобщение.

Така вече ще се получи за 100/100. Виж как ще стане и кажи, ако пак има проблем(и).

0
27/08/2020 22:16:23
mariqn_qrkov avatar mariqn_qrkov 2 Точки

Нещо не мога да разбера какво искаш да ми кажеш. Може ли ако не ти е проблем да промениш където смяташ че бъркам и да го постнеш за да видя какво имаш в предвид. А иначе проверките според мен са нужни защото да кажем за отстъпката например тя не се влиае от това дали парите ще стигнат за екскурзия или не а от това дали играчките са 50 или повече тоест тя може да продаде 50 или повече играчки за които трябва да направи отстъпка и парите пак да не стигнат за екскурзия. Подозирам че грешката ми започва от тук 

if (totalIncomeWithoutRent >= vacationPrice) {
            if (totalToys >=50) {
                double discount = totalIncomeWithoutRent * 0.75;
                double moneyLeft = discount - vacationPrice;
            System.out.printf("Yes! %.2f lv left.", moneyLeft); }
            if (totalToys < 50) {
                double moneyLeft = totalIncomeWithoutRent - vacationPrice;
                System.out.printf("Yes! %.2f lv left.", moneyLeft);
            }
        }else if (totalIncomeWithoutRent < vacationPrice) {
            if (totalToys >=50) {
                double discount = totalIncomeWithoutRent * 0.75;
                double moneyNeeded = vacationPrice - discount;
                System.out.printf("Not enough money! %.2f lv needed.", moneyNeeded);
            }
            if (totalToys<50 ) {
                double moneyNeeded = vacationPrice - totalIncomeWithoutRent;
                System.out.printf("Not enough money! %.2f lv needed.", moneyNeeded);
            }
        }
}}

мисля че трябва да са със разменени места защото реално totalIncomeWithoutRent за момента може да е повече или равно на vacationPrice но ако играчките са 50 или повече след отстъпката реално vacationPrice да е по голямо от totalIncomeWithRent.

Според мен трябва да изглежда ето така :

 if (totalToys >= 50) {
            if (totalIncomeWithoutRent >= vacationPrice) {
                double discount = totalIncomeWithoutRent * 0.75;
                double moneyLeft = discount - vacationPrice;
            System.out.printf("Yes! %.2f lv left.", moneyLeft); }
            if (totalToys < 50) {
                double moneyLeft = totalIncomeWithoutRent - vacationPrice;
                System.out.printf("Yes! %.2f lv left.", moneyLeft);
            }
        }else if (totalIncomeWithoutRent < vacationPrice) {
            if (totalToys >=50) {
                double discount = totalIncomeWithoutRent * 0.75;
                double moneyNeeded = vacationPrice - discount;
                System.out.printf("Not enough money! %.2f lv needed.", moneyNeeded);
            }
            if (totalToys<50 ) {
                double moneyNeeded = vacationPrice - totalIncomeWithoutRent;
                System.out.printf("Not enough money! %.2f lv needed.", moneyNeeded);
            }
        }
}}

но когато го направя така там където съм оцветил със зелено ми светва и когато поставя мишката върху тях ми изписва "Condition 'totalToys < 50' is always 'false' " и не знам как да го оправя ..

0
Erdman avatar Erdman -1 Точки

It is the end of your engineering course, and you do not know what your next step is. Or you have stepped into the software industry, but you want to explore your potential and create an impact PrepaidGiftBalance

-1
04/09/2020 13:36:42
mariqn_qrkov avatar mariqn_qrkov 2 Точки

Пич , ако имаш някакво решение на проблема го сподели , не мисля че трябва да обеснявам че до преди 2 дена не съм имал какъвто и да е допир до програмиране и в момента гледам стари лекции и се опитвам да решавам задачите. Извинявай ако съм разбрал коментара ти погрешно.

0
28/08/2020 13:06:29
joseglass avatar joseglass 0 Точки

If you, too, want to experience the convenience of credit cards and are planning to get one for yourself, then PrepaidGiftBalance is your best bet.

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