Min & Max результаты для l oop в java - PullRequest
1 голос
/ 13 марта 2020

Имитация баскетбольного штрафного броска и процент. Код работает нормально, но в конце распечатки я должен указать максимальный балл и минимальный балл из 5 игр. В результате нужно просто сказать: «Выполнены лучшие игровые броски: + число (макс.). Тогда мне также нужно то же самое для худшего игрового счета (мин). Я думаю, мне нужно создать массив из результатов для l oop, но я не знаю, как получить что-то подобное.

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: " + 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!");     
 }
}

Ответы [ 3 ]

0 голосов
/ 13 марта 2020

Каждый раз в игре l oop проверяет, больше ли значение in in вашего "бегущего максимума" ie maxShots и меньше ли оно in вашего "бегущего минимума" ie minShots.

Также будьте осторожны при инициализации этих переменных max и min. Если вы установите minShots = 0, он может сообщить, что минимум равен 0, даже если фактический минимум больше этого. Это связано с тем, что при проверке значения in меньше minShots значение 0 всегда будет меньше или равно 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 maxShots = 0;
    int minShots = 10;
    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: " + in + " Out Of 10. ");
            total_in += in;
            if(in > maxShots){
                maxShots = in;
            }
            if(in < minShots){
                minShots = in;
            }
            in = 0;
        }   
        while (games <= 5);{
        }           
        average = (total_in / count)*100;

    System.out.println("\nSummary:");
    System.out.println("Best Game Free Throws Made: " + maxShots);
    System.out.println("Worst Game Free Throws Made: " + minShots);
    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!");     
 }
}
0 голосов
/ 13 марта 2020

Сделайте это следующим образом:

import java.util.Scanner;

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;
        int worst = Integer.MAX_VALUE, best = Integer.MIN_VALUE;

        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 ");
                }
            }
            worst = Math.min(worst, in);
            best = Math.max(best, in);
            System.out.println("\nFree Throws Made: " + 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: " + best);
        System.out.println("Worst Game Free Throws Made: " + worst);
        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!");
    }
}

Тестовый прогон:

Enter Player's Free Throw Percentage: 60

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

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

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

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

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

Summary:
Best Game Free Throws Made: 7
Worst Game Free Throws Made: 5
Total Free Throws Made: 29 Out Of 50
Average Free Throw Percentage: 58%

END OF SIMULATION!
0 голосов
/ 13 марта 2020

Не думайте так сложно, как помощь без решения задания: рассмотрите возможность использования переменных для min и max.

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