【问题标题】:Taking the average of an Array取数组的平均值
【发布时间】:2013-05-18 02:37:58
【问题描述】:

我正在尝试编写一个 java 程序来执行以下操作:

  1. 提示并读入要读取的整数个数
  2. 创建一个可以容纳这么多整数的数组
  3. 使用循环读取整数值以填充数组
  4. 计算数组中的平均值(作为整数)

这是我目前所拥有的(尽管我很确定这是错误的):

public static void Average (Scanner keyboard)
{
    System.out.println("Please insert number of integers to read in: ");
    keyboard = new Scanner(System.in);
    int f = keyboard.nextInt();
    int value[]= new int[f];
    //I don't know if I should use a while loop here or what the arguments should be
}

为了建立循环应该满足什么条件?

【问题讨论】:

    标签: java arrays average


    【解决方案1】:

    让我们看看你需要什么来计算平均值以及你现在拥有什么。

    你需要什么

    • 值的总数
    • 价值观
    • 保存值总和的地方

    你有什么

    • 值的总数
    • 获取新值的来源

    现在,根据您的代码,您似乎没有地方可以添加所有数字。这很容易解决;你知道如何声明一个新变量。

    您也没有这些值,但您确实可以从某个地方获取它们。由于您还知道需要汇总多少数字,因此可以使用循环从源中获取那么多数字。

    总而言之,您会希望循环运行f 次。在该循环中,您需要获取新的新号码并将其添加到其余号码中。最后,您应该能够从中得出平均值。

    【讨论】:

      【解决方案2】:

      更好的办法是提示用户一次输入所有值,用空格分隔。浏览器

      2 4 1 1 6 4 2 1

      然后您可以调用split() function f或字符串将其拆分为字符串数组,然后使用Integer.parseInt()函数将此字符串数组转换为整数数组。

      一旦您有了整数数组,就可以通过一个简单的 for 循环将所有值相加并除以该数组的长度。

      【讨论】:

      • 虽然是一个合理的解决方案,但它不符合OPs分配的要求
      【解决方案3】:

      您可以使用while 循环或for 循环来输入数字。随着输入,继续获取数字中的sum。由于您有值的总数: Average= (sum of numbers)/ total numbers.

      我会写伪代码,这样它会迫使你搜索更多:

      //Pseudo code starts after your array declaration
      
      for loop from 0 to f
        store it in values Array
        save sum of numbers: sum= sum+values[i]
      loop ends
      calculate Average
      

      【讨论】:

        【解决方案4】:
        public static void Average (Scanner keyboard)
        {
            System.out.println("Please insert number of integers to read in: ");
            keyboard = new Scanner(System.in);
            int f = keyboard.nextInt();
            int value[]= new int[f];
        
            double avg = 0;
            for (int i = 0; i < f; i++)
            { 
               value[i] = keyboard.nextInt();
               avg += value[i];   
            }
        
            avg /= f;
            System.out.println("Average is " + avg);
        }
        

        我没有看到数组value 的意义。还是您想要其他类型的平均值?

        【讨论】:

          【解决方案5】:

          我(和朋友)写了一个计算平均数的代码:

          package dingen;
          import java.util.Scanner;
          
          
          public class Gemiddelde {
          
          public static void main(String[] args) {
              // TODO Auto-generated method stub
              Scanner sc = new Scanner(System.in);
          
              float maxCount = 0;
              float avgCount = 0;
          
              System.out.println("How many numbers do you want");
          
              int n = sc.nextInt();
          
              for(int i = 0; i < n; i++) {
                  System.out.println("Number: ");
                  float number = sc.nextInt();
                  maxCount = maxCount + number;
          
              }
          
              avgCount = maxCount / n;
              System.out.println("maxCount = " + maxCount);
              System.out.println("avgCount = " + avgCount);
          }
          
          }
          

          您唯一需要做的就是替换您的类和包。

          你会得到消息:你想要多少个数字?:

          然后它会询问你插入的数字数量。

          示例:

          你想要多少个数字?:6

          数量:6

          编号:7

          编号:8

          编号:9

          编号:93

          编号:94

          maxCount = 217.0

          avgCount = 36.166668

          我希望我能帮助你解决你的问题:)

          【讨论】:

            猜你喜欢
            • 2019-06-27
            • 1970-01-01
            • 1970-01-01
            • 2020-12-15
            • 2021-09-26
            • 1970-01-01
            • 2023-01-27
            • 2013-10-25
            • 1970-01-01
            相关资源
            最近更新 更多