啊哈磊_编程从这里起步

标题: 为什么 ,排出来的序 有问题? [打印本页]

作者: bobiscool    时间: 2013-4-6 19:26
标题: 为什么 ,排出来的序 有问题?


作者: rosynirvana    时间: 2013-4-6 19:26
bobiscool 发表于 2013-4-7 09:21
为什么  我这样不行

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

为什么  我这样不行
作者: Smallbee    时间: 2013-4-7 17:21
你第一个判断后a中存储的是前两个数中较大者,b中存储的是较小者;针对你的输入而言就是a=19, b=15;
第二个判断是将前两数中的较小者与第三个数判断,然后b存储这两个数的较大者,c存储较小者;即b=20, c=15;
然后第三个判断是比较前两数较大者与三个数中的最小者,不论如何都是a>=c。实际应该是判断前两数的较大者(a)与前两数中的较小者和第三数两者的较大者(b)进行比较。也就是改成楼上所说a<b。
作者: 755731359    时间: 2013-4-7 17:27
你用第一个和第二个比 然后第二个比较大 于是 B和A换了  你又用B和C比  C大  于是B和C换了  然后你再用A和C比   这样是不对的 你应该用A和B比 或者说先AB AC再BC这样才是大 中 小 的顺序




欢迎光临 啊哈磊_编程从这里起步 (https://bbs.codeaha.com/) Powered by Discuz! X3.2