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

07. Salary - FOR цикъл

Здравейте,
 може ли малко помощ с тази задача , примерните входове и изходи са окей но Judge дава 66/100 и не мога да разбера къде е проблема.
https://pastebin.com/G8FwGQqq

Благодаря предварително :)

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

Здравей,

според мен нямаш нужда от допълнителните променливи, те малко са те пообъркали и от там идват грешките. В твоя код ако "n" е 2, а при n=1 имаш   въведен сайт с глоба напр."Facebook", globa приема стойност 150, излиза от  switch и заплатата се намалява с 150, но ако при n=2, сайтът не е с глоба, globa си стои със стойност 150 и отново ще се намали заплатата въпреки, че не трябва. 

   Пробвай така:

for (int i = 1; i <= n; i++) {
    String type = scanner.nextLine();
    switch (type){
        case "Facebook":
            salary-= 150;
            break;
        case "Instagram":
            salary-= 100;
            break;
        case "Reddit":
            salary-= 50;
            break;
    }
    if (salary <= 0){
        System.out.println("You have lost your salary.");
        return;
    }
}

    System.out.println(salary);
0
19/10/2018 16:02:31
v0llma3wolf avatar v0llma3wolf 0 Точки

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

0
dZf1aeA-KlimentHristov avatar dZf1aeA-KlimentHristov 56 Точки

Мале точно това return в иф-а :) е големия проблем!

И аз благодаря колега.

Аз се чудих 1 час уж всичко смята точно накрая 77 точки и 80 и нестава 100, после видях това ретърн. А то всъщност функцията му е да връща до откат така ли ? Else няма ли как да го направи това ?

0
mitkomik avatar mitkomik 13 Точки
import java.util.Scanner;

public class Salary {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = Integer.parseInt(scanner.nextLine());
        int salary = Integer.parseInt(scanner.nextLine());

        for (int i = 1; i <= n; i++) {
            String site = scanner.nextLine();

            switch (site) {
                case "Facebook":
                    salary -= 150;
                    break;
                case "Instagram":
                    salary -= 100;
                    break;
                case "Reddit":
                    salary -= 50;
                    break;
            }
        }if (salary <= 0){
            System.out.println("You have lost your salary.");
        } else {
            System.out.println(salary);
        }
    }
}
0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.