程序到底该怎么改呀 老是报错
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
at Szu.max(Szu.java:14)
at Szu.main(Szu.java:26)
---------------------------------------------------------------------------------------------------------------
public class Szu { public static int max(int table[])//输出数组中最大的
{ int ma=1; int i=0;
do{  i++;
if(table[i]>table[i+1])
ma=table[i];
else
ma=table[i+1];
}while(i<table.length);
return ma;
}
public static void main(String args[])
{   
int a[]={2,3,2,4,6};
    

System.out.print(max(a));

}
}

解决方案 »

  1.   

    do{ i++;
    if(table[i]>table[i+1])我看  直接  比较 table[1]>table[2]你又 while(i<table.length)显示数组越界.解决方法:i++位置要放合适
      

  2.   


    public static int max(int table[])//输出数组中最大的

    int ma=table[0];
    int i=0;
    do{
    i++;
    if(ma<table[i])
      ma=table[i];
    }while(i<table.length-1);
    return ma;
    }
    public static void main(String args[])
    {   
    int a[]={2,3,9,4,6,-4,46};
    System.out.print(max(a));}
      

  3.   

    这样也可以public static int max(int table[])//输出数组中最大的

    int ma=table[0];
    int i=0;
    do{
    if(ma<table[i])
      ma=table[i];
    i++;
    }while(i<table.length);
    return ma;
    }
      

  4.   

    public static int max(int table[])// 输出数组中最大的
    {
    int ma = table[0]; int i = 1;
    do {
    if (ma < table[i])
    ma = table[i];
    i++;
    } while (i < table.length);
    return ma;
    }