搜索
查看: 1522|回复: 5
打印 上一主题 下一主题

为什么 ,排出来的序 有问题?

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-6 19:26:24 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
5啊哈币

沙发
发表于 2013-4-6 19:26:25 | 只看该作者
bobiscool 发表于 2013-4-7 09:21
为什么  我这样不行

a<b则交换a,b
b<c则交换b,c
这样做的效果是让最小的数字放在c的位置
c已经确定是最小的了,所以下一次排序不需要c再参与比较了
而a,b还没有确定谁大谁小,所以比较a,b
板凳
发表于 2013-4-6 22:32:31 | 只看该作者
第三个判断是a<b,不是a<c
地板
 楼主| 发表于 2013-4-7 09:21:47 | 只看该作者
rosynirvana 发表于 2013-4-6 22:32
第三个判断是a

为什么  我这样不行
5#
发表于 2013-4-7 17:21:14 | 只看该作者
你第一个判断后a中存储的是前两个数中较大者,b中存储的是较小者;针对你的输入而言就是a=19, b=15;
第二个判断是将前两数中的较小者与第三个数判断,然后b存储这两个数的较大者,c存储较小者;即b=20, c=15;
然后第三个判断是比较前两数较大者与三个数中的最小者,不论如何都是a>=c。实际应该是判断前两数的较大者(a)与前两数中的较小者和第三数两者的较大者(b)进行比较。也就是改成楼上所说a<b。
6#
发表于 2013-4-7 17:27:58 | 只看该作者
你用第一个和第二个比 然后第二个比较大 于是 B和A换了  你又用B和C比  C大  于是B和C换了  然后你再用A和C比   这样是不对的 你应该用A和B比 或者说先AB AC再BC这样才是大 中 小 的顺序
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表