我的代码中缺少什么来计算用户输入的数字的平均值?
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n;
float average;
do {
System.out.print("Enter a number: ");
n = scanner.nextInt();
System.out.println("Your number is " + n);
} while (n != 0);
if (n == 0) {
System.out.println("The average is : " + n);
}
scanner.close();
}
}
当用户输入“ 0”时,程序应计算用户输入的数字的平均值,这就是为什么我写了“ while(n!= 0)”的原因。
答案 0 :(得分:1)
您应该执行以下操作: 请注意,由于您还有一个数字(零),因此在通过删除平均值来计算平均值时必须考虑它,因为您要求0才能完成程序。
公共课程Teste {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n;
double average = 0;
int qtdNums = 0;
do {
System.out.print("Enter a number: ");
n = scanner.nextInt();
System.out.println("Your number is " + n);
average = average + n;
qtdNums++;
} while (n != 0);
if (n == 0) {
System.out.println("The average is : " + average / (qtdNums - 1));
}
scanner.close();
}
}
答案 1 :(得分:0)
您实际上并没有使用要阅读的数字。优秀的编辑器会在运行之前告诉您。我会考虑使用Eclipse IDE。您将想要做类似于jhenrique建议的操作。我想说最好将数字加为整数,然后再进行转换,这样就不会在浮点加法上失去准确性,这在某些情况下可能会给您带来很多麻烦(但在这里您可能还可以)。这是我建议的代码,根据jhenrique的答案进行了修改:
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n;
int sum = 0;
int count = 0;
do {
System.out.print("Enter a number: ");
n = scanner.nextInt();
System.out.println("Your number is " + n);
sum += n;
count++;
} while (n != 0);
System.out.println("The average is : " + ((double) sum) / (count - 1));
scanner.close();
}
double
类似于float
,但更准确。在循环中,我将每个读取的数字加到sum
上,然后除以最后读取的事物数,得出平均值。