Java程序以平均方法找到平均值



我有一个程序,可以平均从命令行中的数字。一切都在主要方法中。1.该程序应运行,允许您一次输入一个号码,当您按Enter Enter时,请您提供另一个数字,或者提供按Q来获得平均值的功能。2.该程序的限制设置为添加20个数字。当您达到21时,程序会通知您您添加了许多数字并关闭。3.如果您在同一行上输入多个数字,然后按Enter,对于每个数字输入IT 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));
    }
    

1。

scan2.hasNextDouble()

正在解析包含多个条目的线路,因此必须在循环中将其删除。您可以使用字符串令牌来解析自己,并仅打印一次消息。

2。只需添加此行:

system.out.println("您的平均值是:" (sum/count));

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

3。这实际上取决于您想要什么样的功能。可能是您可以创建一个函数,该函数占用数字并打印出平均值,或者您可能想要其他东西。

一个可能的功能:

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

您可以尝试以下内容:

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
}

相关内容

  • 没有找到相关文章

最新更新