Java 返回数组中的最大值?
我有一个关于这个问题的作业 编写一个函数maxArray,该函数接收double的数组并返回数组中的最大值。使用此函数Java 返回数组中的最大值?,java,arrays,return-value,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 ,
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;
}
}
公共类Q3{
公共静态void main(字符串[]args){
双dar[]={22.5,10.23,15.04,20.77};
双倍最大值=最大阵列(dar,4);
System.out.println(“最大值为:“+max”);
}
双maxArray(双dar[],整数大小){
双最大值=0;
for(int i=0;imaxV){
maxV=dar[i];
}
}
返回maxV;
}
}
无法从main()
调用方法的原因是main()
是静态的,而您的方法不是
将其更改为:
static double maxArray(double dar[], int size)
当您使用时,请删除size
,因为它不是必需的
可能还值得注意的是,如果数组包含负数,则方法将失败。无法从main()
调用方法的原因是main()
是static
,而方法不是
将其更改为:
static double maxArray(double dar[], int size)
当您使用时,请删除size
,因为它不是必需的
可能还值得注意的是,如果数组包含负数,您的方法将失败。将您的maxArray
声明为static
,这样您就可以从静态方法main()
或
您可以创建类的实例并从对象调用它。将您的maxArray
声明为static
,这样您就可以从静态方法main()
或
您创建类的实例并从对象调用它。您的maxArray方法是一种非静态方法。如果没有类的实例,则无法从静态方法访问非静态方法,应创建类的实例并调用maxArray方法
double max = new Q3().maxArray(dar,4);
或者,您也可以始终将maxArray方法标记为静态,并直接从主方法调用它。您的maxArray方法是一种非静态方法。如果没有类的实例,则无法从静态方法访问非静态方法,应创建类的实例并调用maxArray方法
double max = new Q3().maxArray(dar,4);
或者,您也可以始终将maxArray方法标记为静态,并直接从main方法调用它。您的问题是,您试图从静态的main方法调用非静态的maxArray方法。这是一个问题,因为只能从类的实例调用非静态方法,而静态方法是通过类本身调用的
要么将maxArray设置为静态方法,要么在主方法中初始化一个Q3对象,然后像那样调用maxArray。您的问题是,您试图从静态的主方法调用非静态方法maxArray。这是一个问题,因为只能从类的实例调用非静态方法,而静态方法是通过类本身调用的
要么将maxArray设置为静态方法,要么在main方法中初始化一个Q3对象,然后像那样调用maxArray。您的方法必须是静态的,所以您必须说
static double maxArray(double dar[], int size)
以下是一些如何改进方法的提示:
由于不使用“size”值一次,因此可以将其丢弃,也可以将i
替换为i
另外,在maxArray方法中初始化maxV
时,可能需要使用数组的第一个值(double maxV=dar[0]
),因为如果数组中的所有double都是负数,则数字为0的maxV将是最高的。(您也可以使用尽可能低的双精度值,方法是说double maxV=double.MIN_NORMAL
)。您的方法必须是静态的,因此您必须说
static double maxArray(double dar[], int size)
以下是一些如何改进方法的提示:
由于不使用“size”值一次,因此可以将其丢弃,也可以将i
替换为i
另外,在maxArray方法中初始化maxV
时,可能需要使用数组的第一个值(double maxV=dar[0]
),因为如果数组中的所有double都是负数,则数字为0的maxV将是最高的。(您也可以使用尽可能低的双精度值,方法是说double maxV=double.MIN\u NORMAL
)。1)使方法保持静态
2) 请记住,在java中,使用BigDecimal类执行任何十进制算法 1)使您的方法保持静态
2) 请记住,在java中,使用BigDecimal类执行任何十进制算法