Разделение результатов за итерацию цикла - PullRequest
0 голосов
/ 12 марта 2020

У меня есть задание, которое имитирует процент стрелок, выполняющих штрафные броски в баскетболе, в 5 играх по 10 ударов за игру. По большей части код работает так, как я хочу, но для каждой игры мне нужно распечатать количество in выстрелов из 10. Я не могу понять, как сохранить этот результат, задав c для коррелирующего game вместо увеличения числа in во всех играх. Каждая следующая игра добавляет свою сумму in к предыдущей игре.

Тогда мне также понадобится помощь в определении лучших и худших результатов, основанных на количестве in ударов для каждой игры. Я полагаю, что две проблемы могут быть решены одним и тем же действием, у меня просто проблемы с поиском того, что нужно предпринять.

import java.util.*;

public class Final2 {
    public static void main(String[] args){
        double in;
        int out;
        int count;
        int games;
        int tries;
        double average;
        int total;

        Scanner scan = new Scanner(System.in);
        System.out.print("Enter Player's Free Throw Percentage: ");
        int input = scan.nextInt();
        count = 0;
        in = 0;
        average = 0;
        total = 0;
        games = 1;

        do{             
            System.out.println("\nGame " + games + ":");
            games++;

            for (tries = 0; tries < 10; tries++){
                int shot = (int)(Math.random()*100);
                count++;

                if (shot < input){
                   in++;
                    System.out.print("IN ");
                }   

                else{
                    System.out.print("OUT ");
                }               
            }
            System.out.println("\nFree Throws Made: " + String.format("%.0f", in) + " Out Of 10. ");
        }   
        while (games <= 5);{
        }           
        average = (in / count)*100;

        System.out.println("\nSummary:");
        System.out.println("Best Game Free Throws Made: " + "...");
        System.out.println("Worst Game Free Throws Made: " + "...");
        System.out.println("Total Free Throws Made: " + String.format("%.0f", in) + " Out Of " + count);
        System.out.println("Average Free Throw Percentage: " + String.format("%.0f", average) + "%");       
        System.out.println("\nEND OF SIMULATION!");     
    }
}

Выход:

Enter Player's Free Throw Percentage: 50

Game 1:
IN IN IN IN IN IN IN OUT OUT OUT 
Free Throws Made: 7 Out Of 10. 

Game 2:
OUT IN OUT OUT OUT IN OUT IN IN IN 
Free Throws Made: 12 Out Of 10. 

Game 3:
IN OUT IN IN IN OUT OUT OUT OUT OUT 
Free Throws Made: 16 Out Of 10. 

Game 4:
IN OUT OUT OUT IN OUT OUT OUT IN IN 
Free Throws Made: 20 Out Of 10. 

Game 5:
OUT OUT IN OUT OUT OUT IN IN IN IN 
Free Throws Made: 25 Out Of 10. 

Summary:
Best Game Free Throws Made: ...
Worst Game Free Throws Made: ...
Total Free Throws Made: 25 Out Of 50
Average Free Throw Percentage: 50%

END OF SIMULATION!

1 Ответ

2 голосов
/ 12 марта 2020

Вы должны сбросить переменную in до того, как это произойдет. Если вы хотите отслеживать общее количество входящих, вам нужно использовать новую переменную (например, total_in).

import java.util.*;

public class Final2 {

    public static void main(String[] args){
        int in = 0;
        double total_in = 0;
        int out;
        int count = 0;
        int games = 1;
        int tries;
        double average = 0;
        int total = 0;

            Scanner scan = new Scanner(System.in);
            System.out.print("Enter Player's Free Throw Percentage: ");
            int input = scan.nextInt();

            do{             
                System.out.println("\nGame " + games + ":");
                games++;

                for (tries = 0; tries < 10; tries++){
                    int shot = (int)(Math.random()*100);
                    count++;

                    if (shot < input){
                       in++;
                        System.out.print("IN ");
                    }   

                    else{
                        System.out.print("OUT ");
                    }               
                }
                System.out.println("\nFree Throws Made: " + String.format("%.0f", in) + " Out Of 10. ");
                total_in += in;
                in = 0;
            }   
            while (games <= 5);{
            }           
            average = (total_in / count)*100;

        System.out.println("\nSummary:");
        System.out.println("Best Game Free Throws Made: " + "...");
        System.out.println("Worst Game Free Throws Made: " + "...");
        System.out.println("Total Free Throws Made: " + String.format("%.0f", total_in) + " Out Of " + count);
        System.out.println("Average Free Throw Percentage: " + String.format("%.0f", average) + "%");       
        System.out.println("\nEND OF SIMULATION!");     
    }
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...