返回数组中的最大值?

时间:2012-12-11 21:51:04

标签: java arrays return-value

我有一个关于这个问题的作业

编写一个函数maxArray,它接收一个double的数组并返回数组中的最大值。使用此功能

double maxArray(double dar[], int size);

我做了他想做的事,我在主方法中遇到了调用句子的问题!!

这是我的代码:

public class Q3 {

    public static void main(String[] args) {
        double dar[] = { 22.5 , 10.23 , 15.04 , 20.77 };
        double max = maxArray(dar,4);
        System.out.println("the largest number is : " + max);
    }

    double maxArray(double dar[], int size) {
        double maxV = 0;
        for (int i = 0; i < dar.length; i++) {
            if (dar[i] > maxV ) {         
                maxV = dar[i];          
            }
        }
        return maxV;
    } 
}

6 个答案:

答案 0 :(得分:3)

您无法从main()调用方法的原因是main()static,而您的方法则不是。{/ p>

将其更改为:

static double maxArray(double dar[], int size)

当你处于此状态时,请删除size,因为没有必要。

如果数组包含负数,可能还值得注意的是,您的方法会失败。

答案 1 :(得分:1)

maxArray 方法是非静态方法。如果没有类的实例,你不能从静态方法访问非静态方法,你应该创建一个类的实例并调用maxArray方法

double max = new Q3().maxArray(dar,4);

或者,您可以始终将maxArray方法标记为静态,并直接从main方法调用它。

答案 2 :(得分:0)

将您的maxArray声明为static,以便您可以通过静态方法main()

来访问它

您可以创建类的实例并从对象中调用它。

答案 3 :(得分:0)

你的问题是你试图从你的main方法调用maxArray,一个非静态方法,这是静态的。这是一个问题,因为非静态方法只能从类的实例调用,而静态方法是通过类本身调用的。

将maxArray设为静态方法,或者在main方法中初始化Q3对象,然后像这样调用maxArray。

答案 4 :(得分:0)

你的方法必须是静态的,所以你必须说

static double maxArray(double dar[], int size)

以下是一些如何改进方法的提示: 因为你没有使用&#34; size&#34;一次,您可以将其丢弃或将i < dar.length替换为i < size

此外,在maxArray方法中初始化maxV时,您可能希望使用数组的第一个值(double maxV = dar[0]),因为如果数组中的所有双精度数均为负数,则使用数字的maxV 0将是最高的。 (您也可以通过说double maxV = Double.MIN_NORMAL)来使用最低的双倍值。

答案 5 :(得分:0)

1)使你的方法静止 2)记得在java中使用BigDecimal类做任何小数运算。