Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 查找数组的最大值_Java_Arrays_Methods - Fatal编程技术网

Java 查找数组的最大值

Java 查找数组的最大值,java,arrays,methods,Java,Arrays,Methods,我已经到处寻找答案,但没有太多的运气试图让下面的工作 我目前正在学习一门编程入门课程,并面临一个练习,其中我需要编写两个函数(即返回值的方法),这两个函数 a) 返回最大值和 b) 中值,来自一个双值数组 下面是我在哪里的代码。我已经成功地创建了一个方法,允许用户输入数组的元素数,并用一个值初始化它们。然而,我很难得到计算最大工作压力的方法。我已经明确被告知使用Math.max方法。但是,每当我尝试运行代码时,在用户初始化数组后,我都会收到以下错误消息: "Exception in thread

我已经到处寻找答案,但没有太多的运气试图让下面的工作

我目前正在学习一门编程入门课程,并面临一个练习,其中我需要编写两个函数(即返回值的方法),这两个函数

a) 返回最大值和
b) 中值,来自一个双值数组

下面是我在哪里的代码。我已经成功地创建了一个方法,允许用户输入数组的元素数,并用一个值初始化它们。然而,我很难得到计算最大工作压力的方法。我已经明确被告知使用Math.max方法。但是,每当我尝试运行代码时,在用户初始化数组后,我都会收到以下错误消息:

"Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
    The method max(double, double) in the type Math is not applicable for the arguments (double, double[])"
从API
Math.max
中读到的内容来看,max可以处理双重类型。我对如何解决这个问题有点不知所措。我觉得我需要创建一个循环,但我的印象是,
foreach
循环是等效的

所有回复将不胜感激

package com.gc01.lab2;

import java.util.Scanner;

public class exercise22 {

    private static double [] numberInput(){
        Scanner input = new Scanner (System.in);

        System.out.println("How many numbers are in the array?");
        int count = input.nextInt();
        double [] array = new double [count];

        for (int i = 0; i < count; ++i){
            System.out.println("Enter number " + i + ": ");
            array [i] = input.nextDouble();
        }
        return array;
    }

    private double  maximum (double [] array){
        double max = 0.0;
        for (double value : array){
            max = Math.max(0.0, array);
        }
        return  max;
    }

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        final exercise22 object = new exercise22 ();
        System.out.println("The maximum number inputted is " +
                object.maximum(object.numberInput()));

    }

}
包com.gc01.lab2;
导入java.util.Scanner;
公开课练习22{
私有静态双[]numberInput(){
扫描仪输入=新扫描仪(System.in);
System.out.println(“数组中有多少个数字?”);
int count=input.nextInt();
double[]数组=新的double[count];
对于(int i=0;i
您当前正在将整个数组传递给Math.max(),而不仅仅是值。要解决此问题,请更改
max=Math.max(0.0,数组)
max=Math.max(0.0,值)


此外,您总是将其与0.0进行比较。在循环元素之前,应该将max设置为0.0,然后执行
max=Math.max(max,value)以便与当前最大值进行比较。

您知道
双精度
双精度[]
之间的区别吗?不要在数组中传递,而是传递两个双精度。例如,像
max
value
。更好地使用
Math.max(max,value)
非常感谢您,这是完美的,工作完美无瑕!我也明白逻辑!