[英]return the maximum value in the array?
我有一个关于这个问题的作业
编写一个函数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;
}
}
无法从main()
调用方法的原因是main()
是static
而方法不是。
更改为:
static double maxArray(double dar[], int size)
在使用时,请删除size
因为这是不必要的。
可能还值得注意的是,如果数组包含负数,则您的方法将失败。
您的maxArray方法是非静态方法。 没有类的实例就不能从静态方法访问非静态方法,应该创建类的实例并调用maxArray方法
double max = new Q3().maxArray(dar,4);
或者,您可以始终将maxArray方法标记为静态,然后直接从main方法中调用它。
将您的maxArray
声明为static
,因此可以从静态方法main()
要么
您创建类的实例,然后从对象中调用它。
您的问题是您试图从您的主方法(静态)中调用非静态方法maxArray。 这是一个问题,因为只能从类的实例中调用非静态方法,而通过类本身可以调用静态方法。
将您的maxArray设为静态方法,或者在main方法中初始化Q3对象,然后像这样调用maxArray。
您的方法必须是静态的,所以您必须说
static double maxArray(double dar[], int size)
以下是一些如何改进方法的提示:由于您一次不使用值“ size”,因此可以将其丢弃,也可以将i < dar.length
替换为i < size
。
此外,在初始化时maxV
在maxArray方法,你可能需要使用数组的第一个值( double maxV = dar[0]
因为如果阵列中的所有双打是否定的,MAXV编号为0将是最高的。 (您还可以通过说double maxV = Double.MIN_NORMAL
使用可能的最低double值)。
1)使您的方法静态
2)请记住,在Java中使用BigDecimal类可以执行任何十进制算术运算。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.