黑马程序员技术交流社区

标题: java小程序,帮我看看 [打印本页]

作者: 13569403973    时间: 2015-6-13 21:23
标题: java小程序,帮我看看
clsss Test {
int[] x = {125,21,5,168,98};
max = x[0];
for (int i=1; i<x.length; i++){
                if(x[i] < max)
                max = x[i];
}

  运行结果为啥是5?
System.out.println(max);
}

作者: GoldMan    时间: 2015-6-13 21:27
if(x[i] < max改成>
作者: wx_J25HxI5W    时间: 2015-6-13 21:31
你的循环求的是最小值,这估计是个测试题吧,专门坑人的,仔细观察一下,不要被变量名字骗了!
作者: vilion    时间: 2015-6-13 21:58
求的是最小值,当然是5啦
作者: q19871127    时间: 2015-6-13 22:06
你这里是取的最小值
作者: SHISY    时间: 2015-6-13 22:08
你求的是最小值
作者: 痞子刘忙    时间: 2015-6-13 22:48
变量名好坑,这个是求最小值得。如果x[i]>max,则是最大值。
作者: dcw2015    时间: 2015-6-13 22:54
把arr[x]<max 改成arr[x]>max就可以了,写完程序要自己读一遍程序。
作者: 请叫我红领巾    时间: 2015-6-14 10:57
因为你输出的是最小值啊
作者: 苗美丽    时间: 2015-6-14 16:12
由max = x[0],得max= 125,if比较两个值,如果小于max,就把值赋给max,所以5.
作者: 朱智琳    时间: 2015-6-14 16:46
if(x[i] < max)
                max = x[i];
这个是求最小值,我就被max这个变量名坑了。
作者: 云端的风    时间: 2015-6-14 18:03
最小值      所以是5
作者: 夜空中最亮的星    时间: 2015-6-14 18:53
for循环遍历数组,if语句判断是否为最小值,遍历数组结束后,将最小值赋给max
作者: 13699266500    时间: 2015-6-14 19:14
因为你记录的是最小的,你想想,比0小你就记录,最后肯定是5了,应该换成比0大才对
作者: 乔栋    时间: 2015-6-14 20:09
首先很同意楼上的观点。
你把程序写成了输出最小的代码了
改成: if(x[i] > max)
                max = x[i];
作者: 乔栋    时间: 2015-6-14 20:13
云端的风 发表于 2015-6-14 18:03
最小值      所以是5

给人讲清楚点嘛
作者: 谢晓明    时间: 2015-6-14 20:32
符号反了
作者: ujump    时间: 2015-6-14 20:48
写的代码自己读一遍,你写的是max>x[i]时 换 说明是吧小值留下了,所以你输出的是小智……不用谢
作者: 月倚深秋    时间: 2015-6-15 09:59
你这求的应该是最小值
作者: 水蛭31    时间: 2015-6-15 10:02
在循环体中, 判断语句是将把后面的值小于max值的,赋给了max,所以循环出来的是最小值, max求的是最小值,建议将max该成min,见名思义
作者: YongBao_Summer    时间: 2015-6-15 10:19
问题前面楼层已经讲清楚了,你自己要注意认真仔细的看代码。
作者: zlpiano    时间: 2015-6-15 11:51
符号写反了,你求的是最小值,应该把<改成>
作者: 惜爱上缘    时间: 2015-6-15 13:14
把max改为min的话,或许你就知道了
作者: 十字天堂    时间: 2015-6-15 14:00
楼主坏坏哦{:3_48:}
作者: AIE    时间: 2015-6-15 14:21
你这求的是最小值




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