Okey,我需要制作一个程序来计算平均值。但是,我需要输入数字,当我要停止时,我可以输入零。然后,我的程序需要对所有输入的数字求和并计算输入数字的平均值。我在代码中做了几乎所有操作,但idk如何制作公式来计算平均值,程序总和然后除以最后输入的数字。
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);
答案 0 :(得分:3)
您的代码写得很好,除了您计算出平均错误之外,
如果您想即时计算平均值,则需要知道到目前为止已经阅读了多少数字。
例如:
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 * number + 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);
答案 1 :(得分:0)
平均值是数字的总和除以数字的数量,因此您需要对输入的数字以及连续的总和进行连续计数,最后将总和除以按计数。万一您以小数结尾
,则总和应为两倍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);