[英]Java How to calculate the average of 3 bowling scores
I'm writing a program that calculates and displays the average bowling scores of each bowler the user inputs.我正在编写一个程序来计算和显示用户输入的每个保龄球手的平均保龄球得分。 I'm having trouble calculating the average of the 3 scores, right now I think it's calculating the total of the the scores.我在计算 3 个分数的平均值时遇到问题,现在我认为它正在计算分数的总和。 How do I make it so it calculates the average of the 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"));
}
Java's mathematical operators obey the standard mathematical precedence, so it's Java 的数学运算符遵循标准的数学优先级,所以它是
int average = score1 + score2 + (score3 / 3);
However, your intention was likely但是,您的意图很可能
int average = (score1 + score2 + score3) / 3;
Finally you most likely want to do this calculation in double
(or float
) arithmetic, otherwise it will be rounded down最后,您很可能想在double
(或float
)算术中进行此计算,否则将四舍五入
double average = (double)(score1 + score2 + score3) / 3;
The division ( /
) operator has a higher precedence than the addition operator ( +
), so you need to enclose the sum with brackets before dividing:除法 ( /
) 运算符的优先级高于加法运算符 ( +
),因此您需要在除法之前将总和用括号括起来:
average = (score1 + score2 + score3) / 3;
// Here --^------------------------^
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.