黑马程序员技术交流社区

标题: 这个代码dos命令不能运行 请问问题出在那,初来乍到多多关照 [打印本页]

作者: 短板    时间: 2014-10-21 22:48
标题: 这个代码dos命令不能运行 请问问题出在那,初来乍到多多关照
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);
        }
}





作者: 短板    时间: 2014-10-21 22:49
一直在这卡着,不出结果

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

YY图片20141021224302.jpg

作者: 杨佳名    时间: 2014-10-22 00:15
记录最大最小角标写错了,每次循环后给x从新赋值,导致死循环,程序一直运行。应该  Max = x ;  Min = x  ;
另外,循环内x初始值定义成1。
作者: 短板    时间: 2014-10-22 13:07
杨佳名 发表于 2014-10-22 00:15
记录最大最小角标写错了,每次循环后给x从新赋值,导致死循环,程序一直运行。应该  Max = x ;  Min = x   ...

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

您是不是说循环内X初始值应该定义成 0
作者: 杨佳名    时间: 2014-10-22 13:11
短板 发表于 2014-10-22 13:07
我原来以为 = 两边顺序无所谓呢 谢谢 问题解决了  

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

嗯。Max = 0;x = 0; 第一次循环内比较a[0]>a[0]没必要。以后写循环时注意想一下开始和结束时比较的内容




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