黑马程序员技术交流社区

标题: 关于数组最值问题 [打印本页]

作者: 井瑞涛    时间: 2013-4-13 14:39
标题: 关于数组最值问题
本帖最后由 井瑞涛 于 2013-4-20 22:07 编辑

class Demo2 {
        public static void main(String[] args)
        {
                int[] arr={34,56,7,8,9,};
                System.out.println(getMax(arr));
        }
        public static int getMax(int[]arr)
        {               
                                int max=0;//在这里int max=0;和int max=arr[0];都可以正常运行,为什么有什么区别吗?求解一下                     
                   for (int x=1;x<arr.length;x++)
                        {
                                if (arr[x]>max)
                                {
                                        max=arr[x];
                                }
                                       
                        }
                        return max;
        }
}
作者: 谷文仁    时间: 2013-4-13 14:50
int max=0; 定义一个整形变量max并设置初始值为0; (max现在跟arr没有关系)

int max=arr[0]; 获取接受的数组并把数组的第一个元素的值付给变量max(max现在的值是arr数组的第一个元素)
作者: HM邱刚权    时间: 2013-4-13 15:05
本帖最后由 HM邱刚权 于 2013-4-13 15:07 编辑

区别大了!
int max=0;是直接给max赋值  让他等于0 ;
max=arr[0];  是把 arr数组里面[0]的的值也就是数组里面第一个值赋值给他!
虽然都是赋值但是   arr数组里面的值灵活性更大用起来也当然不同!比如
int max=0  你在外面调用他 他的值可以直接在这里修改
但是max=arr[0];  这个必须在数组里面修改!
作者: 殇_心。    时间: 2013-4-13 15:12
区别挺大的。其实1,2楼说得差不多了。
max就是一个介质,你如果把  max = 0;这样定义的话,如果数组中的都为负数的话  就比较不出最大值了。

作者: Friendy89    时间: 2013-4-13 19:09
一二楼正解,这里就不多说了
作者: ①人←①城市    时间: 2013-4-13 19:33
他们之间的区别是很大

但是对于你这里的程序,你的那个max局部变量初始值为0或者arr里面的任何一个值,其结果都是一样,

紧紧针对于你这个程序.
作者: 黑马李强    时间: 2013-4-13 19:54
对于int max=0;和int max=arr[0];在执行getMax()有很大的区别,因为for循环中,你是从x=1开始判断的,在max=0时arr[0]的大小就不会被比较
作者: 庞立森    时间: 2013-4-13 20:06
首先我想先说一下int是可以有负数的,
如果你定义的数组里面没有正数,全都是小于0的,例如int[] arr={-1,-2,-3,-4,-5};
而你在外面定义了一个int max=0;
你的for循环里面和max比较都是比0小的数,那样0岂不不就是最大值了?
但是在我们定义的数组里面-1是最大值,所以与事实不符。
为什么用arr[0]呢?
因为arr[0]表示的是数组的第一个元素,然后拿这第一个元素去和数组的每个元素去进行比较,
只有那样比较出来的才是数组中的最大值
作者: 杨永胜    时间: 2013-4-13 20:22
这道题当时我貌似使用了排序Arrays.sort(..),打印最后一位,即最大值,{:soso_e113:}
作者: lyg2013    时间: 2013-4-13 21:41
当数组里的值都是负数时,令max=0,是不对的,用数组arr解才可以得到正确结果。
作者: 刘策    时间: 2013-4-13 22:23
定义的时候尽量定义成数组的元素的值




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