黑马程序员技术交流社区

标题: 求一个数组中的最大值,想不明白 [打印本页]

作者: 高鑫    时间: 2012-4-26 01:46
标题: 求一个数组中的最大值,想不明白
class Demo
{  public static int[] getmax(int[] arr)
                {
                        int max=arr[0];
                        for(int x=1;x<arr.length;x++)
                        {
                                if(arr[x]>max)
                                max=arr[x];       
                        }
                        return max;
                }
        public static void main(String[] args)
        {
                int[] arr={1,4,9,20,11,9};
                int max=getmax(arr);
                System.out.print("max="+max);
       
        }
               
                               
}

编译说return max 是不兼容的类型,请问到底错误的原因是什么,想不明白哪错了
作者: 郑光    时间: 2012-4-26 01:49
getmax方法返回的是一个int[]数组,max是一个int类型的数字
作者: 林德燚    时间: 2012-4-26 01:55
楼上正解
作者: 张玉建    时间: 2012-4-26 02:00
  int max=arr[0];
定义错了!int  max= 0; 就对了
作者: 袁培育    时间: 2012-4-26 08:03
getMax方法的返回值错了,应该是int而不是int[],因为你要的是最大值(最大值只是一个int型的数)。
作者: 光sail    时间: 2012-4-26 08:08
public static int[] getmax(int[] arr)
                {
                        int max=arr[0];
                        for(int x=1;x<arr.length;x++)
                        {
                                if(arr[x]>max)
                                max=arr[x];        
                        }
                        return max;
                }
这个方法返回的int类型的数组,而return返回的是int类型的整数
正确的代码是
  1. class Demo
  2. { public static int getmax(int[] arr)
  3. {
  4. int max=arr[0];
  5. for(int x=1;x<arr.length;x++)
  6. {
  7. if(arr[x]>max)
  8. max=arr[x];
  9. }
  10. return max;
  11. }
  12. public static void main(String[] args)
  13. {
  14. int[] arr={1,4,9,20,11,9};
  15. int max=getmax(arr);
  16. System.out.print("max="+max);

  17. }


  18. }
复制代码

作者: 马浩    时间: 2012-4-26 08:10
class Demo
{  public static int[] getmax(int[] arr)//所以要把返回值类型定义为int就行了,不能写成int[]
                {
                        int max=arr[0];
                        for(int x=1;x<arr.length;x++)
                        {
                                if(arr[x]>max)
                                max=arr[x];        
                        }
                        return max;//返回值max为int型的
                }
        public static void main(String[] args)
        {
                int[] arr={1,4,9,20,11,9};
                int max=getmax(arr);
                System.out.print("max="+max);
        
        }
               
                                
}

//楼主将public static int[] getmax(int[] arr)改成public static int getmax(int[] arr)就行了
作者: 高彰谦    时间: 2012-4-26 08:25
你把getmax的返回值设成int 就行了
作者: 彭威    时间: 2012-4-26 08:33
public static int[] getmax(int[] arr) //

你的这个函数 返回的是一个int型的数组啊,

int max=getmax(arr);

而你调用的时候返回的又是int的数,肯定不对的啊 :

可修改:
public static int getmax(int[] arr),这样就ok了
作者: 付左军    时间: 2012-4-26 12:50
class Demo
{  public static int[] getmax(int[] arr) //代码错误,返回值MAX为int
                {
                        int max=arr[0];
                        for(int x=1;x<arr.length;x++)
                        {
                                if(arr[x]>max)
                                max=arr[x];        
                        }
                        return max;
                }
        public static void main(String[] args)
        {
                int[] arr={1,4,9,20,11,9};
                int max=getmax(arr);
                System.out.print("max="+max);
        
        }
               
                                
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2