public class zuida {
static int max;public static void main(String args[])
{
  int a[]={1,2,3,4,5};
  System.out.println("数组的最大数为:"+maxElement(a));
} public static int maxElement(int a[]) 
{
 for(int i=1;i<a.length;i++)
  {
   if(a[i-1]>a[i])
   {max=a[i-1];}
  }
 return max;
}
}结果为:
数组的最大数为:0
弄半天不知道错在哪里?

解决方案 »

  1.   

    呵呵,不小心自己搞定,不过还是要谢谢各位朋友进来一看!好人会有好报.
    改为:
    for(int i=0;i<a.length-1;i++)
      {
       if(a[i+1]>a[i])
       {max=a[i+1];}
      

  2.   

    你写的只是相邻的两个数比较而已
    a[0] = 1 a[1] = 2比较,然后a[1]与a[2],依次类推下去,直到最后,if的条件总是不满足的
    所以max等于他的初始值0
      

  3.   

    第一次循环 1(a[i-1])<2(a[i]) 
    第二次循环2(a[i-1])<3(a[i])
    ......
    ......
    ......
    if(a[i-1]>a[i])这句从来就没成立过 上哪给max赋值去?static int max;系统默认会max赋值0
    因此打印0!
    正确的如下:max=a[0];
    for(int i=1;i<a.length;i++){
       if(max<a[i]){
         max=a[i];
       }
    }
      

  4.   

    public class pingjz
    {
       static int average;
       public static void main(String args[])
     {
      int a[]={1,2,3,4,5,6,7,9};
      System.out.println("数组的平均值为:"+avgElement(a));
     } 
      
      public static int avgElement(int a[]) 
      {
    int sum=0;
        for(int i=0;i<=a.length-1;i++)
        sum+=a[i];
        average=sum/a.length;
        return average;
      }
    }