如何将整数存储到变量中并在 java 中计算 Avg?

How do you store integer into a variable and computeAvg in java?

我正在尝试编写一个 Java 程序:

这是我的代码

public static void main(String[] args) {
    Scanner keyboard = new Scanner(System.in);
    System.out.println("Please enter a integer? ");
    int x;
    x = keyboard.nextInt();
    int inputnum=x;
    computeAvg();
}

public static void computeAvg() {
    System.out.println(inputnum);
    System.out.println("Enter double values as inputnum ");
    int y;
    y=keyboard.nextInt();
}    
}

您的代码需要做几处更改:

  static Scanner keyboard = new Scanner(System.in);
          public static void main(String[] args) {

       System.out.println("Please enter a integer? ");
       int x;
       x = keyboard.nextInt();
       int inputnum=x;
              System.out.println("The average is"+computeAvg(inputnum));

        }
         public static double computeAvg(int y)
         {
             double[] arr = new double[y];
       System.out.println(y);
             for (int i = 0; i < y; i++) {
                 System.out.println("Enter double values ");
                 arr[i] = keyboard.nextDouble();
             }
             double sum = 0;
             for(double a:arr){
                 sum +=a;
             }
             System.out.println(sum);
             double average = sum/arr.length;
             return average;
       }   

第一个是您首先作为用户输入的值必须传递给该方法。在这里,我在 computeAvg(inputnum) 中完成并期望此方法 return 一个双精度值。

第二个是您应该将方法声明为 return 一个值 void 表示没有 return。将其更改为 double

public static double computeAvg(int y)

从 main 方法中获取参数(您从用户那里获取的值。)

如果您需要存储多个值,更好的解决方案是数组。(初学者坚持使用数组有很多方法失败)创建一个双精度数组以获取多个双精度值。

double[] arr = new double[y];

接下来根据用户输入的次数循环您的代码并取双精度值。

for (int i = 0; i < y; i++) {
                     System.out.println("Enter double values ");
                     arr[i] = keyboard.nextDouble();
                 }

接下来创建一个 double 值 sum 并对其进行加法除法以获得平均值(另一个 double 值)。

for(double a:arr){
                     sum +=a;
                 }

最后 return 打印到主要方法的平均值。

我使用了static Scanner keyboard = new Scanner(System.in);,因为我在两种方法中使用了相同的扫描仪。

如有任何关于代码的问题,请随时提出。

我希望代码中的注释能够自我解释问题的内容以及代码的工作原理:

public static void main(String[] args) {
    Scanner keyboard = new Scanner(System.in);
    System.out.println("Please enter an integer? ");
    // here you are asking for the number of double numbers that will be
    // entered
    int inputnum = keyboard.nextInt(); // asking for the int input (varibale
                                        // is stored in inputnum)
    System.out.println("Average for all " + inputnum + " numbers is: "
            + computeAvg(inputnum));

}

public static double computeAvg(int inputnum) {
    Scanner keyboard = new Scanner(System.in);
    double eachInput = 0.0;
    double sumInputs = 0.0;
    for (int counter = 1; counter <= inputnum; counter++) {
        System.out.println("Please enter a double as input #" + counter
                + ": ");
        eachInput = keyboard.nextDouble(); // asking for double input
        sumInputs += eachInput; // adding up each input

    }
    // calculating and returning average
    return sumInputs / (double) inputnum;
}