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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

a327201899

中级黑马

  • 黑马币:64

  • 帖子:151

  • 精华:0

© a327201899 中级黑马   /  2016-6-28 21:59  /  417 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

//求一个二维数组中的最小值
class Demo_Array {
        public static void main(String[] args) {
                int[][] arr = {{11,3,45},{5,98},{1,88,99}};
                int min = arr[0][0];
                for (int x =0;x<arr.length ;x++ ) {
                        for (int y=0;y<arr[x].length ;y++ ) {
                                //int min = arr[0][0];
                                if (min >arr[x][y]) {
                                        min = arr[x][y];
                                        //System.out.println(min);
                                }
                        }
                }
                System.out.println(min);
        }
}
注释的是刚看到题目是做的,根据一维数组求最小值思路来得到的结果是不对的.后来改了下能输出正确结果,但不是太了解内存关系..求大神解释下!

4 个回复

倒序浏览
糊图 来自手机 中级黑马 2016-6-28 22:34:20
沙发
你把它定义到for循环的里面,那么每次进到内层循环你的min都会被赋值为二维数组的第一个元素,这样你肯定拿不到最大值了
回复 使用道具 举报
糊图 来自手机 中级黑马 2016-6-28 22:36:15
藤椅
糊图 发表于 2016-6-28 22:34
你把它定义到for循环的里面,那么每次进到内层循环你的min都会被赋值为二维数组的第一个元素,这样你肯定拿 ...

不好意思是最小值
回复 使用道具 举报
求最大或者最小值得时候 不要在循环中定义否认每次都要给最大或者最小的变量重新进行赋值
回复 使用道具 举报
应该写min<arr[x][y],这样才是最小值,你是在求最大值
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马