如何查找输入数字的平均值,但数字的数量未知?

时间:2018-01-11 02:31:21

标签: java arrays java.util.scanner average

我试图创建一个项目,要求用户猜测一个数字并继续猜测,直到他们猜出我确定的数字(即45),然后取所有猜测的平均值。我该怎么做?我以下所拥有的是我尝试过的一种,但实际上是关闭的。

我尝试做的是将所有输入的数字放入一个数组中,然后使用for循环查找数组中数字的总和,然后除以项目数。

System.out.println("Guess a number");
    int a = 45;
    int input = scan.nextInt();
    int numbers[] = new int[input];
    double total = 0;
    Scanner scan = new Scanner(System.in);
    for (int i=0; i!=999; i++) {
        System.out.println("You guessed wrong. Guess again");
        numbers[i] = scan.nextInt();
        if (input==a) {
            total = total + numbers[i];
            System.out.println("You guessed right"); 
        }
    } 
    System.out.println("The average of your inputted numbers is "+total/input);

1 个答案:

答案 0 :(得分:0)

您可以使用ArrayList完成此操作。这些是动态的,允许您添加和删除元素。首先导入ArrayList:

import java.util.ArrayList;

这是您创建的代码,已修改为使用数组列表。我没有测试过,但应该可以使用。

List<Integer> numbers = new ArrayList<>();
System.out.println("Guess a number");
int a = 45;
Scanner scan = new Scanner(System.in);
int input = scan.nextInt();
double total = 0;

for (int i=0; i!=999; i++) {
    input = scan.nextInt();

    if (input != a)
    {
        System.out.println("You guessed wrong. Guess again");
        numbers.add(input);
    }
    else if (input == a){
        numbers.add(input);
        System.out.println("You guessed right");
        break;
    }
} 
for (int i = 0; i < numbers.size(); i++)
{
    total += numbers.get(i);
}
System.out.println("The average of your inputted numbers is "+total/numbers.size());

执行此代码后,我意识到它可能与原始程序有不同的结果;但是,我相信这可能是你想要的。祝你好运。