Java Comment calculer la moyenne de 3 scores de bowling


J'écris un programme qui calcule et affiche les scores de bowling moyens de chaque lanceur que l'utilisateur entre. J'ai du mal à calculer la moyenne des 3 scores, en ce moment je pense que c'est calculer le total des scores. Comment puis-je faire en sorte qu'il calcule la moyenne des scores

public static void main (String [] args)
{



//local constants


  //local variables
    String bowler = "";
    int total = 0;
    int average = 0;
    int score1 = 0;
    int score2 = 0;
    int score3 = 0;

  /********************   Start main method  *****************/

  //Enter in the name of the first bowler
  System.out.print(setLeft(40," Input First Bowler or stop to Quit: "));
  bowler = Keyboard.readString();

  //Enter While loop if input isn't q
  while(!bowler.equals("stop"))
  {

      System.out.print(setLeft(40," 1st Bowling Score:"));
      score1 = Keyboard.readInt();
      System.out.print(setLeft(40," 2nd Bowling Score:"));
      score2 = Keyboard.readInt();
      System.out.print(setLeft(40," 3rd Bowling Score:"));
      score3 = Keyboard.readInt();
      if(score1 >= 0 && score1 <= 300 && score2 >= 0 && score2 <= 300 && score3 >= 0 && score3 <= 300)
      {
          total += score1;
          total += score2;
          total += score3;
          System.out.println(setLeft(41,"Total: ")+ total);
          average = score1 + score2 + score3 / 3;
          System.out.println(setLeft(41,"Average: ") + average);


      }
      else
      {
          System.out.println(setLeft(40,"Error"));

      }
Author: Mureinik, 2017-10-10

2 answers

Les opérateurs mathématiques de Java obéissent à la priorité mathématique standard, donc c'est

   int average = score1 + score2 + (score3 / 3);

Cependant, votre intention était probablement

   int average = (score1 + score2 + score3) / 3;

Enfin, vous voudrez probablement faire ce calcul dans double (ou float) arithmétique, sinon il sera arrondi à

double average = (double)(score1 + score2 + score3) / 3;
 4
Author: Izruo, 2017-10-10 21:05:27

L'opérateur division (/) a une priorité plus élevée que l'opérateur addition (+), vous devez donc joindre la somme avec des crochets avant de diviser:

average = (score1 + score2 + score3) / 3;
// Here --^------------------------^
 3
Author: Mureinik, 2017-10-10 20:56:16