永发信息网

java数组问题?编译通过,出现了Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException:

答案:3  悬赏:10  手机版
解决时间 2021-03-19 20:13
  • 提问者网友:心牵心
  • 2021-03-19 09:06
class 数组test
{
public static void main(String[] args)
{
int[] arr = {34,19,11,109,3,56};
int max = getMax(arr);
System.out.println("max="+max);
public static int getMax(int[] arr)
{
int max = arr[0];
for (int a = 1;a<=arr.length ;a++ )
{
max = (arr[0]>arr[a])? arr[0]:arr[a];
}
return max;
最佳答案
  • 五星知识达人网友:大漠
  • 2021-03-19 10:40
你不应该每次都拿arr[0]去做比较的,应该把最大的赋给max
public class TestArr {
public static void main(String[] args) {
int[] arr = { 34, 19, 11, 109, 3, 56 };
int max = getMax(arr);
System.out.println("max=" + max);
}

private static int getMax(int[] arr) {
int max = arr[0];
for (int i = 0; i < arr.length; i++) {
if (max < arr[i]) {
max = arr[i];
}
}
return max;
}
}
全部回答
  • 1楼网友:旧脸谱
  • 2021-03-19 13:11
a<=arr.length 改为a<arr.length 。懂了吗?
  • 2楼网友:长青诗
  • 2021-03-19 11:41
system.arraycopy(a, 0, b, 2,c.length); 这句话异常 数组拷贝是 越界了 system.arraycopy();这个方法是把 a 数组 中的元素从 第0 个元素 拷贝到 b数组的 从 第2 个索引之后 c.length位 而 b的长度总共为 6 那么从b的第二位拷贝 6 位到b的话就越界了所以 异常 你可以把 拷贝的长度改小一点 如 1,2,3,等
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯