用平均方法找到平均值的java程序

时间:2014-02-06 15:49:53

标签: java methods syntax main

我有一个程序可以从命令行平均你的数字。一切都在主要方法中。 1.程序应该运行,允许您一次输入一个数字,当您按Enter键时,它会询问您是否有另一个号码,或者提供按Q来获得平均值的功能。 2.程序的限制设置为添加了20个数字。点击21时,程序会通知您添加了多个号码并关闭。 3.如果您在同一行输入多个数字并按Enter键,则为您输入的每个数字System.out.println为每个数字输入一次,而不是仅输入一次。

我想了解如何更改程序来执行这些操作。

  1. 如何让System.out.println每次只显示一次。
  2. 当有人进入21
  3. 时,如何让程序在结束之前输出20的平均值
  4. 如何更改它以创建一个在main之外进行平均的方法,然后调用main中的平均方法。

    import java.util.Scanner;
    
    class programTwo {
    
    public static void main (String[] args) {
        Scanner scan = new Scanner(System.in);
        double sum = 0;
        int count = 0;
        System.out.println ("Enter your numbers to be averaged:");
        String inputs = scan.nextLine();
    
        while (!inputs.contains("q")) {
            Scanner scan2 = new Scanner(inputs); // create a new scanner out of our single line of input
    
            while(scan2.hasNextDouble()) {
                sum += scan2.nextDouble();
                count += 1;
                System.out.println("Please enter another number or press Q for your average");
            } 
    
            if(count == 21)
            {
                System.out.println("You entered too many numbers! Fail.");
                return;
            }
            inputs = scan.nextLine();
        }
        System.out.println("Your average is: " + (sum/count));
    }
    

2 个答案:

答案 0 :(得分:1)

1

scan2.hasNextDouble()

正在解析包含多个条目的行,因此必须在while循环中删除它。您可以使用字符串标记化解析自己并仅打印一次消息。

2。只需添加以下行:

  

System.out.println(“你的平均值是:”+(总和/数));

返回之前if条件打印退出前的平均值。

3。这真的取决于你想要什么样的功能。也许你可以创建一个函数,它接受一组数字并打印出它们的平均值,或者你想要别的东西。

一个可能的功能:

public double findAverage(ArrayList<Integer> numbers){
    int sum=0;
    for (Integer i: numbers){
        sum+=i;
    }
    return sum/(double)numbers.size();
}

答案 1 :(得分:0)

您可以尝试以下操作:

public static void main(String[] args){
  if(args.length==20)
  {
    int sum=0;
    sum += Integer.parseInt(args[0]); //do this for 20 array elements using loop 
    // do required calculation
  }
  else //print error message
}