Loading...

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

Alek_nik97 avatar Alek_nik97 0 Точки

Задача 02. Cinema

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

В една кинозала столовете са наредени в правоъгълна форма в r реда и c колони. Има три вида прожекции с билети на различни цени:

  • Premiere – премиерна прожекция, на цена 12.00 лева.
  • Normal – стандартна прожекция, на цена 7.50 лева.
  • Discount – прожекция за деца, ученици и студенти на намалена цена от 5.00 лева.

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

Това е кода , но не печата нищо :

import java.util.Scanner;

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

        String projections = scanner.nextLine();
        int rows = Integer.parseInt(scanner.nextLine());
        int columns = Integer.parseInt(scanner.nextLine());

        double income;
        if ("Premiere".equals(projections)) {
            income = rows * columns * 12;
        } else if ("Normal".equals(projections)) {
            income = rows * columns * 7.50;
        } else if ("Discount".equals(projections)) {
            income = rows * columns * 5;
            System.out.printf("%.2f", income);
        }
    }
}
Тагове:
0
Общи приказки
pupushu avatar pupushu 5 Точки

Ами принтираш само в случай на Discount, в останалите случаи програмата ти не влиза в тази проверка и не печата нищо. Помисли къде да принтираш за да се случва винаги

0
06/11/2019 22:43:01
Alek_nik97 avatar Alek_nik97 0 Точки

След първата къдрава скоба ?

0
pupushu avatar pupushu 5 Точки

Ами можеш след всяка проверка направо да печаташ резултата, но можеш и да го изведеш след проверките, тогава само трябва при инициализацията да му зададеш стойност за да не ти се кара ide-то

0
Alek_nik97 avatar Alek_nik97 0 Точки

Изведох го след проверките и изчислението е 0.00 не знам защо

0
Alek_nik97 avatar Alek_nik97 0 Точки

А на income му зададох стойност 0.0

0
pupushu avatar pupushu 5 Точки
import java.util.Scanner;

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

        String projections = scanner.nextLine();
        int rows = Integer.parseInt(scanner.nextLine());
        int columns = Integer.parseInt(scanner.nextLine());

        double income = 0.0;
        if ("Premiere".equals(projections)) {
            income = rows * columns * 12;
        } else if ("Normal".equals(projections)) {
            income = rows * columns * 7.50;
        } else if ("Discount".equals(projections)) {
            income = rows * columns * 5;
        }    
        System.out.printf("%.2f", income);
        
    }
}

 

 

така би трябвало да работи без грешка, основният проблем е, че когато подадеш като данни Normal за прожекция, то програмата ти започва да върви ред по ред, първо си получава данните от трите реда, след което инициализира double income, след това започва да върви по if else проверките, спира се на първия if и проверява дали прожекцията е Premiere, тъй като не е продължава нататък, стига до следващия if и проверява дали прожекцията е Normal, понеже е, изпълнява това което е написано в скоупа (къдравите скоби след if else), там ти сетва income да е равно на някаква стойност и след това приключва с всички if else проверки. Тоест така както си сложил принтирането в последния if else ще ти принтира само когато влезнеш там, а това се случва когато за прожекция зададеш discount и в нито един друг от случаите. Първият вариант е да принтираш във всяка една if проверка като по този начин каквото и да ти се подаде като вход ще стигаш до принтиране, а другият е да принтираш накрая като тогава след приключване на проверките ще си принтираш каквото имаш като стойност в income

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