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

© bolt 中级黑马   /  2016-2-15 02:08  /  1271 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

需求是要求出数组最值的,角标异常了。

package com.itheima.Day05;

public class ArrayDemo {
        public static void main(String[] args) {
                int[]arr=new int[]{-2,-9,-28,-15,0,45,2};
                System.out.println(getMax(arr));
        }
       
       
       
       
       
        static int getMax(int[]arr){               
                int max=arr[0];
                for(int i=0;i<arr.length-1;i++){
                        if(arr[i]<arr[i+1]){
                                arr[max]=arr[i+1];
                        }else{
                                arr[max]=arr[i];
                        }
                }
                return arr[max];
        }
}

评分

参与人数 1黑马币 +1 收起 理由
洋葱头头 + 1

查看全部评分

8 个回复

倒序浏览
本帖最后由 参禅悟道 于 2016-2-15 09:07 编辑

哥们你搞错了吧,你那个getMax方法里面,每次循环求出最大值的时候,你把这个最大值赋给谁了,你赋错变量了吧,应该赋给int max,结果你赋给了arr[max]它。此时max=arr[0]等于-2。arr[-2]这肯定错呀。
不过你这还有一个错误就是:for循环的时候 int i=0;i<arr.length;而不是i<arr.length-1;
后来一看,还是不对,你这个判断大小,比较的两个的对象不对吧,应该是跟int max,相比较吧,所以if语句也错着呢应该是
            if(max<arr){
                                max=arr;
                }


QQ截图20160215090203.png (143.6 KB, 下载次数: 9)

QQ截图20160215090203.png

评分

参与人数 1技术分 +1 收起 理由
洋葱头头 + 1

查看全部评分

回复 使用道具 举报
参禅悟道 发表于 2016-2-15 08:46
哥们你搞错了吧,你那个getMax方法里面,每次循环求出最大值的时候,你把这个最大值赋给谁了,你赋错变量了 ...

嗯 我懂了。 没注意看 谢谢了。
回复 使用道具 举报
参禅悟道 发表于 2016-2-15 08:46
哥们你搞错了吧,你那个getMax方法里面,每次循环求出最大值的时候,你把这个最大值赋给谁了,你赋错变量了 ...

我的错误是这样的就是拿最值赋给指标了。

我的代码自己打的 就是一开始拿数组0号值赋给最值 然后两个两个比 大的就再赋给最值。

老师讲的简单点 直接把0号赋给最值  直接用最值和数组的每一个数字比。数组大的再赋给最值
回复 使用道具 举报
bolt 发表于 2016-2-15 11:06
我的错误是这样的就是拿最值赋给指标了。

我的代码自己打的 就是一开始拿数组0号值赋给最值 然后两个 ...

你这个不能两两比较,你这不是进行排序,只是求最大值,所以如果你两两比较的话,最后结果可能求出来的不是最大值。
回复 使用道具 举报
参禅悟道 发表于 2016-2-15 11:14
你这个不能两两比较,你这不是进行排序,只是求最大值,所以如果你两两比较的话,最后结果可能求出来的不 ...

嗯。。确实 
回复 使用道具 举报
toukya 中级黑马 2016-2-15 16:24:15
7#
这都能错
回复 使用道具 举报
zapoo 中级黑马 2016-2-17 19:16:42
8#
arr[max]这是数组中的元素么??你应该用max去存数组中的最大值然后输出来!!max不是数组中角标!!!!
回复 使用道具 举报
努力吧   这个不难,需要细心就可以发现的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马