A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 高鑫 中级黑马   /  2012-4-26 01:46  /  2331 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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 是不兼容的类型,请问到底错误的原因是什么,想不明白哪错了

9 个回复

正序浏览
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);
        
        }
               
                                
}
回复 使用道具 举报
彭威 中级黑马 2012-4-26 08:33:18
9#
public static int[] getmax(int[] arr) //

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

int max=getmax(arr);

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

可修改:
public static int getmax(int[] arr),这样就ok了
回复 使用道具 举报
你把getmax的返回值设成int 就行了
回复 使用道具 举报
马浩 中级黑马 2012-4-26 08:10:33
7#
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)就行了
回复 使用道具 举报
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. }
复制代码
回复 使用道具 举报
getMax方法的返回值错了,应该是int而不是int[],因为你要的是最大值(最大值只是一个int型的数)。
回复 使用道具 举报
  int max=arr[0];
定义错了!int  max= 0; 就对了
回复 使用道具 举报
楼上正解
回复 使用道具 举报
getmax方法返回的是一个int[]数组,max是一个int类型的数字
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马