Професионална програма
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 429 Точки

Здравей, 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 0 Точки

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

0
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