如何在java中将整数存储到变量和computeAvg中?

时间:2015-04-14 03:26:04

标签: java variables math

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

  • 在main方法中,提示用户输入整数。
  • 将号码存储在名为inputNum的变量中。
  • inputNum传递给名为computeAvg
  • 的方法
  • computeAvg中,提示用户输入双倍值inputNumcomputeAvg方法应计算并返回用户输入的实数的平均值。
  • 在主要方法中打印结果。

这是我的代码

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();
}    
}

2 个答案:

答案 0 :(得分:1)

您的代码中有几项更改:

  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)中完成了此操作并期望此方法返回一个double值。

第二个是你应该声明方法返回值void意味着没有返回。将其更改为double

public static double computeAvg(int y)

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

如果你需要存储多个值,那么更好的解决方案是数组。(有许多方法可以让初学者坚持使用数组)创建一个double数组来获取多个double值。

double[] arr = new double[y];

接下来将代码循环用户输入的次数并取双值。

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

接下来创建一个双精度值sum并获得加法并将其除以得到平均值(另一个双精度值)。

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

最后将平均值返回到打印的主方法。

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

随时询问有关代码的任何问题。

答案 1 :(得分:0)

我希望代码中的注释可以解释问题的原因以及代码的工作原理:

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;
}