代码之家  ›  专栏  ›  技术社区  ›  Alan Xie

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

  •  0
  • Alan Xie  · 技术社区  · 7 年前

    我正在尝试创建一个项目,要求用户猜测一个数字,并不断猜测,直到他们猜到我确定的数字(即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 回复  |  直到 7 年前
        1
  •  0
  •   Jai    7 年前

    您可以使用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());
    

    在完成这段代码之后,我意识到它的结果可能与您原来的程序不同;然而,我相信这可能是你想要的。祝你好运。