我被分配了一个创建平均计算器的任务,不幸的是,每次平均计算器完成时我会得到一个太多而没有解决问题的数字 - 或者,平均值完全关闭。< / p>
import java.util.*;
public class Mean
{
public static void main()
{
Scanner inputLine = new Scanner(System.in);
int total = 0, number, counter = 0;
double average;
System.out.println ("Enter your numbers, press 0 to launch");
while (inputLine.nextInt() != 0)
{
number = inputLine.nextInt();
if(number >= 1)
{
total = total + number;
counter++;
}
}
average = total/counter-1;
System.out.println ("Your Average is : " + average);
}
}
答案 0 :(得分:4)
int
每个循环两次Scanner
。 while
循环读取int
以确保它不是0
,但while
循环的主体读取第二个int
并且只计算第二个int
。将第一个nextInt
调用的结果分配给while循环条件中的变量,并在正文中使用该变量进行计算。
您从平均值计算中减去1。没有理由这样做。不要这样做。
您正在执行Java的整数除法,它将截断任何小数。将其中一个操作数强制转换为/
到double
以强制进行浮点计算。
while ( (number = inputLine.nextInt() ) != 0)
{
if(number >= 1)
{
total = total + number;
counter++;
}
}
average = (double) total / counter;
您可能希望为用户未输入任何项目的条件添加代码,以防止除以0。