簡體   English   中英

在用戶控制的循環程序中計算平均值

[英]Calculate number average in user controlled looping program

我在另一個Java程序上遇到了麻煩,它可能確實很小,但是由於某種原因,我無法理解問題所在。 類似的問題以前曾被提出過很多次,但是它並沒有給出該程序所需的確切信息,至少給出的答案沒有幫助。

該程序需要計算用戶最初輸入的數字數量集的平均值。 聲明為inputNumber 然后,程序向用戶詢問用戶指定的設置數量的每個數字。 這是addedNumber ,並將它們全部加到一個總數中,即numberSum ,然后除以inputNumber以獲得總數的平均值,該平均值被聲明為numberAverage

例如:如果程序提示我要輸入多少個數字,並且我鍵入4( inputNumber ),則掃描程序會提示我輸入4個數字( addedNumber ),然后我鍵入4個數字,例如數字:2 、、 3、6和1。這些數字加在一起作為和12( numberSum ),然后除以得到4個數字的平均值( numberAverage )。

用於計算提示用戶次數的計數器i將在for循環中單獨聲明,直到達到用戶輸入的計算數量為止。 整個程序會在while循環中進行,直到用戶輸入0作為inputNumber的值inputNumber ,這將中斷循環並終止程序。

這是代碼:

import java.util.Scanner;
/**
 * Write a description of class AverageNumbers here.
 *
 * @author (your name)
 * @version (a version number or a date)
 */
public class Average2
{
    public static void main ()
    {
        int inputNumber;
        double numberSum = 0;

        Scanner scan = new Scanner(System.in); 

        while (true) {
            System.out.print("Please enter the amount of numbers you want to be calculated. (0 to quit): ");
            inputNumber = scan.nextInt();

            if (inputNumber == 0) {
                System.out.println("Program Ended");
                break; 
            }
            for ( int i = 0; i < inputNumber; i++) {
                System.out.print("Please enter a value:" );

                double addedNumber = scan.nextInt();
                numberSum += addedNumber;
            }

            double numberAverage = numberSum/inputNumber;

            System.out.println("Average: " + numberAverage);
        }
    }
}

但這是問題所在:

循環錯誤

如您所見,只有循環的第一部分獲得了正確的平均值,而第二次循環卻沒有。 我很困惑,應該如何進行循環,以便每次都可以正確計算平均值,而不僅僅是第一次。 我認為這與初始化的事,但初始化變量為01-1並沒有幫助。 加上將變量設置為0會使程序永遠無法運行,因為這是停止程序的條件。 如果確實是一個簡單的初始化錯誤,請問有人可以解釋一下代碼的問題是什么,而不是先問這個問題?

編寫的代碼給出的是您輸入的每個數字的平均值,而不是所輸入組的平均值。

您需要在每組數字的開頭“重置” numberSumnumberSum = 0; )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM