Java 平均值,最小值,最大值

Java 平均值,最小值,最大值,java,Java,所以在我的程序中,用户一次输入一个数字列表,当我用设置为-1的“end”语句结束列表数字时,我得到了平均值、最大值和最小值,我的问题是当我得到最小输出时,每次都是-1,我很难从阵列中移除-1,有什么想法吗 import java.util.Scanner; //import scanner to user scanner tool public class Average { //creating public class public static void main(String

所以在我的程序中,用户一次输入一个数字列表,当我用设置为-1的“end”语句结束列表数字时,我得到了平均值、最大值和最小值,我的问题是当我得到最小输出时,每次都是-1,我很难从阵列中移除-1,有什么想法吗

import java.util.Scanner; //import scanner to user scanner tool

public class Average { //creating public class

    public static void main(String[]args) { //creating public static main

        Scanner input = new Scanner(System.in); //creating scanner input to grab user input

        System.out.println("Please enter a list of numbers, entering -1 to end the list: ");

        double[] numbers = new double[20]; //creating 20 count array
        double sum = 0; 
        int count = 0;
        double average;
        int end = -1;

        for(int i = 0; i<numbers.length; i++) {

            System.out.print("Enter a number: ");
            numbers[i] = input.nextDouble();

            if(numbers[i]== end) {

             break;

            }
            sum+= numbers[i];
            count++;
        }    
        // gets average from user input of numbers
        average = sum/count;
        System.out.println("Average is: " + average);
        double max = maxim(numbers);
        System.out.println("Max: " + max);
        double min = minim(numbers);
        System.out.println("Min: " + min);

    }

//method for finding out maximum number from user input

    public static double maxim(double[] array) {

        double maxNum = array[0];
        for(int i = 1; i<array.length; i++) {
            if(array[i] > maxNum) {
                maxNum = array[i];
            }
        }
     return maxNum; 
    }
 //method for finding out minimum number from user input   

    public static double minim(double[] array) {

        double minNum = array[0];
        for(int i = 1; i<array.length; i++) {
               if(array[i] < minNum && array[i]!=-1) {
                minNum = array[i];
            }

        }
     return minNum; 
    }

}
import java.util.Scanner//将扫描仪导入用户扫描仪工具
公共类平均值{//创建公共类
公共静态void main(字符串[]args){//正在创建公共静态main
扫描仪输入=新扫描仪(System.in);//创建扫描仪输入以获取用户输入
System.out.println(“请输入数字列表,输入-1以结束列表:”);
double[]number=新的双精度[20];//创建20计数数组
双和=0;
整数计数=0;
双倍平均;
int end=-1;

对于(int i=0;i,只有当输入不是结束标志(
-1
)时,才可以将其输入临时变量并存储在数组中。例如:


for(int i=0;i您需要将负责从计算统计数据的代码中读取用户输入的部分代码进行数据耦合。对于从结果数组中删除-1,您只需简单地不将此值放入结果。当用户输入随机数时,首先检查它是否为-1,然后将其放入结果。类似于:

import java.util.Scanner;  

public class Average {  

    public static void main(String[]args) { //creating public static main
        double[] numbers = readInputNumbers();
        System.out.println("Average is: " + average(numbers));
        System.out.println("Max: " + max(numbers));
        System.out.println("Min: " + min(numbers));
    }

    public double[] readInputNumbers() {
      Scanner input = new Scanner(System.in); //creating scanner input to grab user input
      System.out.println("Please enter a list of numbers, entering -1 to end the list: ");
      double[] numbers = new double[20];
      final int endInput = -1;
      for(int i = 0; i < numbers.length; i++) {
          System.out.print("Enter a number: ");
          double nextNumber = input.nextDouble();
          if(nextNumber == endInput) {
              break;
          } else {
              numbers[i] = nextNumber;
          }
      }
      return numbers;   
  }

    public static double max(double[] array) {
        double maxNum = array[0];
        for(int i = 1; i<array.length; i++) {
            if(array[i] > maxNum) {
                maxNum = array[i];
            }
        }
     return maxNum; 
    }

    public static double min(double[] array) {
        double minNum = array[0];
        for(int i = 1; i<array.length; i++) {
               if(array[i] < minNum && array[i]!=-1) {
                minNum = array[i];
            }

        }
     return minNum; 
    }

    public static double average(double[] numbers) {
        double sum = 0;
        for(int i = 0; i < numbers.length; i++) {
            sum = sum + numbers[i];
        }
        return sum / numbers.length; 
    }

}
import java.util.Scanner;
公共类平均值{
公共静态void main(字符串[]args){//正在创建公共静态main
double[]number=readInputNumber();
System.out.println(“平均值为:”+平均值(数字));
System.out.println(“Max:+Max(数字));
System.out.println(“Min:+Min(数字));
}
公共双[]readInputNumbers(){
扫描仪输入=新扫描仪(System.in);//创建扫描仪输入以获取用户输入
System.out.println(“请输入数字列表,输入-1以结束列表:”);
double[]数字=新的double[20];
最终int ENDIPUT=-1;
for(int i=0;i对于(int i=1;i您不需要任何数组来完成此操作。只需在每次迭代时计算最小值和最大值,就像您使用求和和和计数一样,通过将新的数字与以前的最小值/最大值进行比较。如果您真的想保持这种状态,只需在数组中不存储-1,而不是尝试删除它。您的最大值和最小值方法应采用e count作为参数,只考虑数组的
count
第一个元素。
import java.util.Scanner;  

public class Average {  

    public static void main(String[]args) { //creating public static main
        double[] numbers = readInputNumbers();
        System.out.println("Average is: " + average(numbers));
        System.out.println("Max: " + max(numbers));
        System.out.println("Min: " + min(numbers));
    }

    public double[] readInputNumbers() {
      Scanner input = new Scanner(System.in); //creating scanner input to grab user input
      System.out.println("Please enter a list of numbers, entering -1 to end the list: ");
      double[] numbers = new double[20];
      final int endInput = -1;
      for(int i = 0; i < numbers.length; i++) {
          System.out.print("Enter a number: ");
          double nextNumber = input.nextDouble();
          if(nextNumber == endInput) {
              break;
          } else {
              numbers[i] = nextNumber;
          }
      }
      return numbers;   
  }

    public static double max(double[] array) {
        double maxNum = array[0];
        for(int i = 1; i<array.length; i++) {
            if(array[i] > maxNum) {
                maxNum = array[i];
            }
        }
     return maxNum; 
    }

    public static double min(double[] array) {
        double minNum = array[0];
        for(int i = 1; i<array.length; i++) {
               if(array[i] < minNum && array[i]!=-1) {
                minNum = array[i];
            }

        }
     return minNum; 
    }

    public static double average(double[] numbers) {
        double sum = 0;
        for(int i = 0; i < numbers.length; i++) {
            sum = sum + numbers[i];
        }
        return sum / numbers.length; 
    }

}
import java.util.Scanner; 
import java.util.stream.*; 

public class Average {  

    public static void main(String[]args) { //creating public static main
        double[] numbers = readInputNumbers();
        DoubleSummaryStatistics statistics = DoubleStream.of(numbers).summaryStatistics();
        System.out.println("Average is: " + statistics.getAverage()));
        System.out.println("Max: " + statistics.getMax());
        System.out.println("Min: " + statistics.getMin());
    }

    public double[] readInputNumbers() {
        Scanner input = new Scanner(System.in); //creating scanner input to grab user input
        System.out.println("Please enter a list of numbers, entering -1 to end the list: ");
        double[] numbers = new double[20];
        final int endInput = -1;
        for(int i = 0; i < numbers.length; i++) {
            System.out.print("Enter a number: ");
            double nextNumber = input.nextDouble();
            if(nextNumber == endInput) {
                break;
            } else {
                numbers[i] = nextNumber;
            }
        }
        return numbers;   
    }
}