![](/img/trans.png)
[英]How to write Java program that takes a number from a user and calculate sum and average of the numbers in between?
[英]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);
}
}
}
但這是問題所在:
如您所見,只有循環的第一部分獲得了正確的平均值,而第二次循環卻沒有。 我很困惑,應該如何進行循環,以便每次都可以正確計算平均值,而不僅僅是第一次。 我認為這與初始化的事,但初始化變量為0
, 1
或-1
並沒有幫助。 加上將變量設置為0
會使程序永遠無法運行,因為這是停止程序的條件。 如果確實是一個簡單的初始化錯誤,請問有人可以解釋一下代碼的問題是什么,而不是先問這個問題?
編寫的代碼給出的是您輸入的每個數字的平均值,而不是所輸入組的平均值。
您需要在每組數字的開頭“重置” numberSum
( numberSum = 0;
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.