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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

class Arraytest11
{
        public static int getMax(int[] arr)
        {
                int Max=0;    //定义数组中元素的角标
                for(int x=0;x<arr.length;x++)
                {
                        if(arr[x]>arr[Max])   //判断 定义角标元素 与数组中每个元素的大小
                                x=Max;   //记录最大元素的角标
                }
                return arr[Max];       //返回最大值
        }
        public static int getMin(int[] arr)
        {
                int Min=0;
                for(int x=0;x<arr.length;x++)
                {
                        if(arr[x]<arr[Min])
                                x=Min;
                }
                return arr[Min];
        }
        public static void main(String []args)
        {
                int[] arr={23,54,6,7,87,99,0,98,34,2,-2,-18};
                int Max=getMax(arr);
                int Min=getMin(arr);
                System.out.println("Max="+Max);
                System.out.println("Min="+Min);
        }
}




4 个回复

正序浏览
短板 发表于 2014-10-22 13:07
我原来以为 = 两边顺序无所谓呢 谢谢 问题解决了  

您是不是说循环内X初始值应该定义成 0 ...

嗯。Max = 0;x = 0; 第一次循环内比较a[0]>a[0]没必要。以后写循环时注意想一下开始和结束时比较的内容
回复 使用道具 举报
杨佳名 发表于 2014-10-22 00:15
记录最大最小角标写错了,每次循环后给x从新赋值,导致死循环,程序一直运行。应该  Max = x ;  Min = x   ...

我原来以为 = 两边顺序无所谓呢 谢谢 问题解决了  

您是不是说循环内X初始值应该定义成 0
回复 使用道具 举报
记录最大最小角标写错了,每次循环后给x从新赋值,导致死循环,程序一直运行。应该  Max = x ;  Min = x  ;
另外,循环内x初始值定义成1。
回复 使用道具 举报
一直在这卡着,不出结果

YY图片20141021224302.jpg (75.11 KB, 下载次数: 12)

YY图片20141021224302.jpg
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马