Как я могу улучшить мою логику / код, чтобы правильно рассчитать процент? - PullRequest
0 голосов
/ 18 апреля 2020
import java.util.Scanner;
public class a4
{
    public static void main(String args[])
    {
        int Faculty[]=new int[4];
        int Student[]=new int[4];
        Scanner sc=new Scanner(System.in);
        int index=0, f=0, s=0;
        System.out.println("Welcome to the Pickelball tournament");
        System.out.println("There can be only one winner per game. Wnner score is max 11. Scoring starts from 0. ");
        do
        {
                System.out.println("Game# " +  (index+1));
                System.out.println("Enter the scores for faculty: ");
                f=sc.nextInt();
                //
                System.out.println("Enter the scores for student: ");
                s=sc.nextInt();
                if((f==11) && (s==11))
                {
                    System.out.println("Only one team may score 11; try again.");
                }
                else if(((f<11) && (s<11)) || ((f>11) && (s>11)) || ((f<0) && (s<0)))
                {
                    System.out.println("One team must score 11 to proceed.");
                }
                else
                {
                    Faculty[index]=f;
                    Student[index]=s;
                    index++;
                }

        }while(index<4);


        for (int i=0;i<4;i++)
        {
            System.out.print("\t\tGame# " + i);
        }
        System.out.print("\nFaculty score \n\t\t");
        for (int i=0;i<4;i++)
        {
            System.out.print(Faculty[i] + "\t\t");
        }
        System.out.print("\nStudent score \n\t\t");
        for (int i=0;i<4;i++)
        {
            System.out.print(Student[i] + "\t\t");
        }

        int winningPercent=0;
        for(int i=0; i<4; i++)
        {
            if(Faculty[i]==11)
            {
                Faculty[i]=1;
                Faculty[i]++;
            }
            winningPercent= ((Faculty[i]/4)*100);
        }
        System.out.println("\n\nFaculty won " + winningPercent + "% of their matches");
    }
}

У меня проблемы с тем, чтобы выяснить логи c о том, как заставить мой код распечатывать нужные мне проценты. Например, если 11 вводится один раз, то я бы хотел, чтобы на нем отображалось, что шансы факультета на победу составляют 25%; если он вводится дважды, то до 50%. Я не уверен, как исправить мои логики c в последней части моего кода, потому что я думал, что из того, что я написал, если Faculty[i]==11, то он будет повторно инициализирован в 1, а затем добавлю 1 на основе if Faculty [i] было 11, затем возьмите значение 1-4 и разделите его на 4, чтобы получить процент (0, 25, 50, 75 или 100). То, что я пробовал, - это переместить мое выражение Winning в свой оператор if, но это обычно дает мне 0% или 200%. Мой код сейчас делает то, что если 11 вводится один или два раза, он увеличивается до 100%, что является неточным.

...