输入数字直到0,然后计算平均值

时间:2018-12-26 16:31:39

标签: java while-loop

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);

2 个答案:

答案 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);