簡體   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