简体   繁体   English

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

[英]Input numbers until 0, then calculate average

Okey, i need to make a program to calculate average.好吧,我需要制作一个程序来计算平均值。 But, i need to input numbers, and when i want to stop i can input zero.但是,我需要输入数字,当我想停止时,我可以输入零。 Then, my program need to sum all entered numbers and calculate average of entered numbers.然后,我的程序需要对所有输入的数字求和并计算输入数字的平均值。 I made almost everyithing in my code but idk how to make a formula to calculate average, my program sum numbers and then divide by last entered number.我在我的代码中做了几乎所有的事情,但是我不知道如何制作一个公式来计算平均值,我的程序总和然后除以最后输入的数字。

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

Your code is written great except you calculate the average wrong,你的代码写得很好,除了你计算错误的平均值,

If you want to calculate the average on the fly you will need to know how much numbers you have read so far..如果您想即时计算平均值,则需要知道到目前为止您阅读了多少数字。

eg:例如:

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

this code will give you the average after each step.此代码将为您提供每一步后的平均值。

Another (simpler solution) is:另一个(更简单的解决方案)是:

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

Average is the sum total of the numbers divided by the number of numbers, so you need to keep a running count of how many numbers you are inputting, as well as a running sum, and at the end, you divide the sum by the count.平均值是数字的总和除以数字的数量,因此您需要保持对输入的数字的运行计数以及运行总和,最后,将总和除以计数. The sum should be a double just in case you end up with a fraction总和应该是双倍,以防你最终得到一个分数

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