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