嘿伙计们我有一个功课问题,要求我找到随机生成的数组的第二高数字并返回该数字。数组必须长度为6,所以从概念上讲,这是我遇到编译器错误之前所拥有的。有人可以帮我完成吗? 更新:我需要引用数组并在main方法中调用它试图在system.out.println语句中这样做但是我不知道如何调用正确的方法/数组。
import java.io.*;
import java.util.Arrays;
public class SecondHighest{
public static int find2ndHighest(int[] list){
//define how long the array can be
list[] = new int[6];
//create a for loop to fill the array.
for(int i = 0; i>=list.length; i++){
list[i] = (int)(Math.random()*10);
}
Arrays.sort(list); //use the built-in sorting routine
return list[1];
}
}
答案 0 :(得分:0)
您的循环永远不会有效,因为i
永远不会大于或等于 list.length
更改
for(int i = 0; i>=list.length; i++){
到
for(int i = 0; i<list.length; i++){
它应该小于因为,数组索引从零开始并以Arraylength-1 结束。
也改变了
list[] = new int[6];// this is wrong
to
list = new int[6]; // you dont need sqare brackets, you only need array reference.
答案 1 :(得分:0)
阅读编译错误!有许多语法错误,例如调用列表 - &gt;将它作为参数后列出[]。你可以称之为列表!此外,您不必在方法中创建新列表!应该是这样的:
import java.io.*;
import java.util.Arrays;
public class SecondHighest{
public static int find2ndHighest(int[] list){
//create a for loop to fill the array.
for(int i = 0; i<list.length; i++){
list[i] = (int)(Math.random()*10);
}
Arrays.sort(list); //use the built-in sorting routine
return list[1];
}
//define how long the array can be
int[] list = new int[6];
int result = find2ndHighest(list);
}
我不确定数学随机函数..
答案 2 :(得分:0)
另外,考虑到它是一个家庭作业问题,最好不对整个数组进行排序,因为你会得到O(n * logn)复杂度,但迭代值并保持最大的两个,为了O(n)复杂性。