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

05. Fitness Center 05. Fitness Center JavaProgrammingBasics.

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

Някой може ли да ми каже къде бъркам?

Решението ми минава 2-та примерни теста , но ми дава 0/100 точки.

Изпит по "Основи на програмирането" -  9 и 10 Март 2019

Задача 5. Фитнес център

Напишете програма, която да изчислява броя на посетителите в един фитнес център. В началото програмата получава броя на посетителите на фитнеса и за всеки човек - дейността, която извършва във фитнеса. На края програмата трябва да отпечата броят трениращи за всяка една дейност ("Back", "Chest", 'Legs", "Abs") и броят клиенти, закупили продукт ("Protein shake", "Protein bar"). Също така - процентът трениращи (спрямо общия брой посетители) и процентът на клиентите, закупили продукт от фитнеса.

Вход

От конзолата се чете число, след това поредица от низове, всяко на отделен ред:

  • На първия редброят на посетителите във фитнеса цяло число в интервала [1...1000]
  • За всеки един посетител на отделен ред – дейността във фитнесатекст ("Back", "Chest", "Legs", "Abs", "Protein shake" или "Protein bar")

Изход

Да се отпечатат на конзолата 8 реда, които съдържат следната информация:

Ред 1 -"{брой хора трениращи гръб} - back"

Ред 2 -"{брой хора трениращи гърди} - chest"

Ред 3 -"{брой хора трениращи крака} - legs"

Ред 4 -"{брой хора трениращи коремни мускули} - abs"

Ред 5 -"{брой хора закупили протеинов шейк} - protein shake"

Ред 6 -"{брой хора закупили протеинов блок} - protein bar"

Ред 7 -"{процент на хората дошли да тренират}% - work out"

Ред 8 -"{процент на хората дошли да купят протеин}% - protein"

Всички проценти трябва да са форматирани до втората цифра след десетичния знак.

Примерен вход и изход

Вход

Изход

Обяснения

10

Back

Chest

Legs

Abs

Protein shake

Protein bar

Protein shake

Protein bar

Legs

Abs

1 - back

1 - chest

2 - legs

2 - abs

2 - protein shake

2 - protein bar

60.00% - work out

40.00% - protein

 

Back – един

Chest – един

Legs – двама

Abs – двама

Protein shake –  двама

Protein bar – двама

6 посетители са тренирали – 6 от 10 ->60%

4 посетители са закупили продукти – 4 от 10 -> 40%

 

Вход

Изход

7

Chest

Back

Legs

Legs

Abs

Protein shake

Protein bar

 

1 - back

1 - chest

2 - legs

1 - abs

1 - protein shake

1 - protein bar

71.43% - work out

28.57% - protein

 

 

 

import java.util.Scanner;

public class Main {

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

        double members = Double.parseDouble(scanner.nextLine());

        int backWorkout = 0;
        int chestWorkout = 0;
        int legsWorkout = 0;
        int absWorkout = 0;
        int sellsProteinShakes = 0;
        int sellsProteinBars = 0;
        int activeMembers = 0;
        int inActiveMembers = 0;

        String typeOfActivity = scanner.nextLine();

        for (int i = 1; i <= members; i++) {

            if (typeOfActivity.equalsIgnoreCase("back")) {
                backWorkout++;
                activeMembers++;
            } else if (typeOfActivity.equalsIgnoreCase("chest")) {
                chestWorkout++;
                activeMembers++;
            } else if (typeOfActivity.equalsIgnoreCase("abs")) {
                absWorkout++;
                activeMembers++;
            } else if (typeOfActivity.equalsIgnoreCase("legs")) {
                legsWorkout++;
                activeMembers++;
            } else if (typeOfActivity.equalsIgnoreCase("protein shake")) {
                sellsProteinShakes++;
                inActiveMembers++;
            } else if (typeOfActivity.equalsIgnoreCase("protein bar")) {
                sellsProteinBars++;
                inActiveMembers++;
            }
            typeOfActivity = scanner.nextLine();
        }
        System.out.printf("%d - back%n", backWorkout);
        System.out.printf("%d - chest%n", chestWorkout);
        System.out.printf("%d - legs%n", legsWorkout);
        System.out.printf("%d - abs%n", absWorkout);
        System.out.printf("%d - protein shake%n", sellsProteinShakes);
        System.out.printf("%d - protein bar%n", sellsProteinBars);
        System.out.printf("%.2f%% - work out%n", (activeMembers / members) * 100);
        System.out.printf("%.2f%% - protein%n", (inActiveMembers / members) * 100);

    }
}

 

 

 

Whi7eW0lf avatar Whi7eW0lf 25 Точки
Best Answer

Заповядай : https://pastebin.com/NiaSTTxv , вече дава 100/100. Проблема беше в четенето на дейността . Когато скенера е извън for цикъла , зависва .

0
13/03/2019 23:59:12