Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

AnnaIvanova11 avatar AnnaIvanova11 21 Точки

Dishwasher

Здравейте,

Моля за малко помощ. 

Полувам 90 от 100. Не мога да видя какво изпускам.

Прилагам код и условие. Мерси !


1.Съдомиялна

Гошо работи в ресторант и отговаря за зареждането на съдомиялната накрая на деня.

Вашата задача е да напишете програма, която изчислява, дали дадено закупено количество бутилки от препарат за съдомиялна е достатъчно, за да измие определено количество съдове. Знае се, че всяка бутилка съдържа 750 мл. препарат, за 1 чиния са нужни 5 мл., а за тенджера 15 мл.  Приемете, че на всяко трето зареждане със съдове, съдомиялната се пълни само с тенджери, а останалите пъти с чинии. Докато не получите команда "End" ще продължите да получавате бройка съдове, които трябва да бъдат измити.

Вход

От конзолата се четат:

  • Брой бутилки от препарат, който ще бъде използван за миенето на чинии - цяло число в интервала [1…10]

На всеки следващ ред, до получаване на командата "End" или докато количеството препарат не се изчерпи, брой съдове, които трябва да бъдат измити - цяло число в интервала [1…100]

Изход

В случай, че количеството препарат е било достатъчно за измиването на съдовете:

"Detergent was enough!"

"{брой чисти чинии} dishes and {брой чисти тенджери} pots were washed."

"Leftover detergent {количество останал препарат} ml."

В случай, че количеството препарат не е било достатъчно за измиването на съдовете:

"Not enough detergent, {количество не достигнал препарат} ml. more necessary!"


import java.util.Scanner;

public class dishWasher {

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

        int countBottles = Integer.parseInt(scan.nextLine());
        countBottles*=750;

        int mlPerDishes = 0;
        int countDishes = 0;
        int mlPerPots = 0;
        int countPots = 0;

        boolean isItEnd = false;

        int allMlPerWash = 0;
        int result = 0;

        int looper = 0;
        String input = "";
        while (true){
            input = scan.nextLine();

            if ("End".equals(input)){
                isItEnd = true;
                break;
            }

            int dishInput = Integer.parseInt(input);
            looper++;

            if (looper % 3 == 0){
                mlPerPots+=dishInput;
                countPots+=dishInput;
            }else {
                mlPerDishes+=dishInput;
                countDishes+=dishInput;
            }

            allMlPerWash = mlPerDishes*5 +  mlPerPots*15;

            if (countBottles <= allMlPerWash){
                break;
            }
            
        } if (isItEnd || countBottles >= allMlPerWash){
            result =  countBottles - allMlPerWash;
            System.out.printf("Detergent was enough!\n" +
                    "%d dishes and %d pots were washed.\n" +
                    "Leftover detergent %d ml.",countDishes,countPots,result);

        }else {
            result = Math.abs(allMlPerWash - countBottles);
            System.out.printf("Not enough detergent, %d ml. more necessary!",result );

        }
    }
}

 

Тагове:
0
Programming Basics with Java
knoteva avatar knoteva 1081 Точки
Best Answer

Здравей,

Трябва да е if (countBottles < allMlPerWash){ break;}

Няма логика да принтираш "0 ml. more necessary!"

В единия случай, ако следващата команда е end, препаратът ще е стъгнал, в другия - ще отпечаташ, примерно, че са нужни още 50 мл.

Освен това, "isItEnd' не ти е нужна.

0
08/11/2019 08:59:58
AnnaIvanova11 avatar AnnaIvanova11 21 Точки

Много, много благодаря !!! yes Имам толкова варианти на код за тази задача , сега чак отчетох нулата и че трябваше да мисля за гранични проверки.

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