求大神解答

来源:6-6 编程练习

guaguaerhao

2014-12-11 17:26

为什么 这样子不行?大神求解答

写回答 关注

1回答

  • _潇潇暮雨
    2014-12-11 20:28:17

    26行换成这样就对了,if(nums[i] < min),因为还有等于的情况。以下是排序的详细过程:

    nums = new int[] { 61, 23, 4, 74, 13, 148, 20 };

    min = max = nums[0] = 61;

    i = 0,nums[0](61)<= max(61),else执行,min = nums[0] = 61;

    i = 1,num[1](23) <= max(61),else执行,min = nums[1] = 23;

    i = 2,nums[2](4) <= max(61),else执行,min = nums[2] = 4;

    i = 3,nums[3](74) > max(61),else语句不执行,此时min = 4;

    i = 4,nums[4](13) <= max(74),else执行,min = 13,此时程序就已经显现出错误。

    i = 5,nums[5](148) > max(74),else语句不执行,min = 13;

    i = 6,nums[6](20) <= max(148),else执行,min = 20;

        所以你的代码运行结果是20.算最小值其实和最大值没有关系,与max进行比较,逻辑上说不通啊。

Java入门第一季(IDEA工具)升级版

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

1165172 学习 · 17581 问题

查看课程

相似问题

求大神解答

回答 2

求大神解答

回答 3

求大神解答

回答 2

求大神解答

回答 2

求大神解答

回答 1