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

Bachelor Party

Този while цикъл така и не го разбрах явно.... Само тази задача не успях да реша от пробния изпит. Ще се радвам да ми кажете къде бъркам.

 

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

        int performerMoney = Integer.parseInt(scan.nextLine());

        String command = scan.nextLine();

        int count = 0;
        int pricePerGuest = 0;
        int diff = 0;
        int totalMoney = 0;

        while (!command.equals("The restaurant is full")) {
            int guests = Integer.parseInt(scan.nextLine());

            if (guests < 5) {
                pricePerGuest = 100;
            } else {
                pricePerGuest = 70;
            }

            count = count + guests;

            totalMoney = pricePerGuest * count;

            diff = Math.abs(totalMoney - performerMoney);
        }

        if (diff < performerMoney) {
            System.out.printf("You have %d guests and %d leva left.", count, diff);
        } else {
            System.out.printf("You have %d guests and %d leva income, but no singer.", count, totalMoney);
        }

    }
}
Тагове:
0
Programming Basics
lashovski avatar lashovski 5 Точки

Здравей,

1.Проблема идва от това че,

  • Никъде не променяш стойността на променливата "command",а получените данни отиват в : Int guests.
  • Следователно като получиш,"The restaurant is full", програмaта гърми, защото не може да конверира текста в число.

Опитай така:

  while (!command.equals("The restaurant is full")) {
            int guests = Integer.parseInt(command);

            if (guests < 5) {
                pricePerGuest = 100;
            } else {
                pricePerGuest = 70;
            }

            count = count + guests;

            totalMoney = pricePerGuest * count;

            diff = Math.abs(totalMoney - performerMoney);
            command = scan.nextLine();
        }

 

Ето така трябва да изглежда :) : https://pastebin.com/RFiF9yC7
 

0
28/10/2019 00:39:35
merch_bg avatar merch_bg 0 Точки

Благодаря ти!

Два дни заради този изпит не мръднах от компа и ми беше изпушила главата. Днеска, като си бях починал малко и видях какви глупости съм писал, чак срам ме хвана. :) 

0
28/10/2019 15:04:53
DeveloperEnthusiast avatar DeveloperEnthusiast 303 Точки

На всяка итерация трябва да добавяш(натрупваш) пари и гости, а с твоята логика им задаваш нова стойност и на края ще получиш стойностите от последната група гости. Също така командата ти не се презаписва никъде.

Ето ти решение с подобна логика: https://pastebin.com/N3tLAN61

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