Софтуерно Инженерство
Loading...
+ Нов въпрос
Ntesdaf avatar Ntesdaf 1 Точки

While-Loop - Exercise , 03. Vacation

Здравейте колеги,

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

За тази задача успях да намеря правилно решение с дадените примери, но резултата ми е 55/100.

След доста лутане разбрах, че не съм спазил 1 условие - 5 последователни дни.

Направих втори брояч, но той не работи правилно, защото почва от 0.

После опитах друго, коригирах го, но резултата пак 55/100 .

Смених всички int с  double, резултат 88/100.

Това е последния ми код:

https://pastebin.com/8Gcb9kBX

Може ли, да ми дадете насока, че вече не знам как да го оправя.

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

Тагове:
0
Programming Basics with Java 15/05/2019 22:45:38
damesova avatar damesova 192 Точки

Заповядай едно решение, което минава на 100. Дебъгни го.

ЦЪК

0
Ntesdaf avatar Ntesdaf 1 Точки

Благодаря, намерих проблема.

Втория брояч е грешно формулиран.

0
RuNNeR4142 avatar RuNNeR4142 21 Точки

Проблемът е че когато събира пари не зануляваш брояча на поредни дни които харчи а просто го намаляш с един.
Така ако харчи 4 дни подред, спестява 1 и после харчи  2 дена подред, кода ти ще даде изход без да е харчила 5 дни подред.

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

public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String input = scanner.nextLine();
        int stepsGoal = 10000;
        int stepsTotal = 0;
 
 
        while (!(input.equals("Going home"))) {
            int steps = Integer.parseInt(input);
            stepsTotal += steps;
 
            if (stepsTotal >= stepsGoal) {
                System.out.println("Goal reached! Good job!");
                return;
            }
            input = scanner.nextLine();
        }
 
        int steps = scanner.nextInt();
        stepsTotal += steps;
 
        if (stepsTotal >= stepsGoal) {
            System.out.println("Goal reached! Good job!");
        } else {
            System.out.printf("%d more steps to reach goal.", (stepsGoal - stepsTotal));
        }
    }
}

 

0
Ntesdaf avatar Ntesdaf 1 Точки

Благодаря,

Оправих го за 3 сек. сутринта, преди работа!

1