Софтуерно Инженерство
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
KlimentHristov avatar KlimentHristov 57 Точки

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

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

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

0
mitkomik avatar mitkomik 10 Точки
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