计算用户控制的循环程序中的数字平均值

时间:2018-03-27 22:41:27

标签: java for-loop while-loop java.util.scanner

我在另一个Java程序上遇到了麻烦,而且它可能非常小,但出于某种原因,我无法理解问题所在。之前已经多次提出过类似的问题,但它并没有给出这个程序所需的完全相同的东西,至少给出的答案没有帮助。

程序需要计算用户最初输入的数量集的平均值。其中声明为inputNumber。然后,程序向用户询问用户指定的每个设定量的数量。这是addedNumber,所有这些都会添加到总计numberSum中,然后除以inputNumber以获得总计的平均值,该值已声明为numberAverage

例如:如果程序提示我输入了多少个数字,我输入4(inputNumber),扫描仪会提示我输入4次(addedNumber),我键入4个数字,例如数字:2,3,6和1.这些数字加在一起作为总和12(numberSum),然后除以得到4个数字的平均值({{ 1}})。

将计算在numberAverage循环中单独声明计数器i,该计数器将计算提示用户的次数将增加,直到达到用户输入的数量为止。并且整个程序在for循环上发生,直到用户输入while作为0的值,然后它将中断循环并终止程序。

以下是代码:

inputNumber

但问题在于:

Loop Error

正如你所看到的,只有循环的第一部分得到平均值,但循环第二次没有得到。我被卡住了,循环应该如何去,以便每次都计算平均值而不是第一次。我认为这与初始化有关,但将变量初始化为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会使程序永远不会运行,因为条件是为了停止它。如果它确实是一个简单的初始化错误,那么有人可以解释一下代码的错误,而不是说之前已经问过这个问题吗?

1 个答案:

答案 0 :(得分:2)

所写的代码是给出了您输入的每个号码的平均值,而不仅仅是刚刚输入的群组的平均值。

你需要&#34;重置&#34; numberSumnumberSum = 0;)在每组数字的开头。