繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM