问题描述
- 初学者小白请教大神门一个问题..........
-
用户输入三个数字,比较三个数字大小,并按照从小到大的顺序输出。
老师给的答案如图,但是小弟怎么也想不明白,如果a,b或者c其中任意两个数字相等,代码怎么比较的。if总的判断条件不能成立啊,按理说应该不执行啊,但是最后结果却没有影响!求大神赐教
解决方案
第一和第二个if相当于找到a,b,c里的最小,然后赋值给a,赋值完之后a的值并没有丢失,而是存放在了b或c中的某一个里;第三个if比较剩下的两个数,小的赋值给b,这样a,b,c的顺序就是从小到大了。
至于你说的如果有两个数相等,这种情况下程序保持他们原有的顺序不做改变。举个栗子,输入的a,b,c分别是3,3,2,那么第一个if条件不满足;第二个if满足,交换a和c之后,三个数为2,3,3,最后第三个if,b这时和c相等,不做交换,所以最后输出就是2,3,3啦!
解决方案二:
如果a,b或者c其中任意两个数字相等,代码怎么比较的。if总的判断条件不能成立啊,按理说应该不执行啊。 相等的时候 就是不执行啊,相等的数交不交换都不影响结果的啊
解决方案三:
http://www.doc88.com/p-403985465304.html
解决方案四:
http://www.doc88.com/p-403985465304.html
解决方案五:
1、把max赋值为0。
2、让用户输入三个整数,放在a[1]、a[2]、a[3]中。
3、把max和a[4]比较,如果max小于a[4],则max等于a[4]。
4、输出max。
解决方案六:
这是很简单的两个数字比大小。三个数a b c比大小等价于 ab , ac , bc 比大小
解决方案七:
if语句里面是交换两个数的顺序,如果if语句不成立,顺序就不变了啊
解决方案八:
首先,三个if是彼此独立的,if操作中总是将大数和小数交换了,以保证abc三者是从小到大的顺序的。如果有两个相等的话,没有交换的意义的。
第一个if,输出的a<b
第二个if,输出的a<c
第三个if,输出的是b<c
那么最后得到的abc的大小顺序:a<b<c的三个值了。
解决方案九:
直接上我大快排sort