[英]Input numbers until 0, then calculate average
好吧,我需要制作一个程序来计算平均值。 但是,我需要输入数字,当我想停止时,我可以输入零。 然后,我的程序需要对所有输入的数字求和并计算输入数字的平均值。 我在我的代码中做了几乎所有的事情,但是我不知道如何制作一个公式来计算平均值,我的程序总和然后除以最后输入的数字。
Scanner input = new Scanner(System.in);
System.out.println("Input numbers, 0 for stop!");
int number = input.nextInt();
int number1 = 1;
while (number != 0) {
number1 = (number + number1) / number; //here is my problem?
number = input.nextInt();
}
System.out.println("Average is: " + number1);
你的代码写得很好,除了你计算错误的平均值,
如果您想即时计算平均值,则需要知道到目前为止您阅读了多少数字。
例如:
Scanner input = new Scanner(System.in);
System.out.println("Input numbers, 0 for stop!");
int number = input.nextInt();
int average = number;
int counter = 1;
while (number != 0) {
average= (average * counter + number) / (counter + 1);
counter++;
number = input.nextInt();
}
System.out.println("Average is: " + average);
此代码将为您提供每一步后的平均值。
另一个(更简单的解决方案)是:
Scanner input = new Scanner(System.in);
System.out.println("Input numbers, 0 for stop!");
int number = input.nextInt();
double sum = 0;
int counter = 0;
while (number != 0) {
sum += number;
counter++;
number = input.nextInt();
}
System.out.println("Average is: " + sum/counter);
平均值是数字的总和除以数字的数量,因此您需要保持对输入的数字的运行计数以及运行总和,最后,将总和除以计数. 总和应该是双倍,以防你最终得到一个分数
Scanner input = new Scanner(System.in);
System.out.println("Input numbers, 0 for stop!");
double sum = 0;
int count = 0;
int number = input.nextInt();
while (number != 0) {
sum += number;
count++;
number = input.nextInt();
}
System.out.println("Average is: " + sum/count);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.