啊哈磊_编程从这里起步

标题: 第3章 第六节 逻辑挑战2:三个数怎么办 里面的问题。 [打印本页]

作者: 突然觉得    时间: 2013-6-8 20:15
标题: 第3章 第六节 逻辑挑战2:三个数怎么办 里面的问题。
红框里面到底  哪里不行??
作者: rosynirvana    时间: 2013-6-8 20:15
吐槽有理 发表于 2013-6-9 01:22
并不是说有问题,只是题目要求输出最大数,这样只是违背题意而已

我不觉得哪里违反了题意,题目中说输出最大值,a,b,c都是最大值,将a,b,c都输出完全符合题意。
如果题目的描述是,输出a,b,c中的最大值max,那么确实应该输出一个值

上面是数学角度的解释,如果在编程的角度上来讲

输出一个序列中满足条件f(x)的值,如果这个序列中有复数个值满足f(x),那么一般情况下的实现是输出第一个,这样做是为了减少memory access

但是也有例外,例如序列长度是2
一般会写成return a>b? a:b;
而非return a>=b? a:b;
两者的memory access一样,但是前面一种写法可以少打一个字符
作者: 吐槽有理    时间: 2013-6-9 00:00
因为要求的是输出最大的数,而红框里如果a=b=c,则输出a,b,c三个值
作者: rosynirvana    时间: 2013-6-9 01:02
吐槽有理 发表于 2013-6-9 00:00
因为要求的是输出最大的数,而红框里如果a=b=c,则输出a,b,c三个值

但是从数学上来说,这样子做一点错都没有
作者: 吐槽有理    时间: 2013-6-9 01:22
rosynirvana 发表于 2013-6-9 01:02
但是从数学上来说,这样子做一点错都没有

并不是说有问题,只是题目要求输出最大数,这样只是违背题意而已
作者: 突然觉得    时间: 2013-6-9 22:53
这。。。 我是初学者, 感觉两人说的都对。。。

可是 最佳答案应该给谁?  我也不会分辨啊。。。
作者: rosynirvana    时间: 2013-6-9 23:48
你可以当做一个issue提交给作者
作者: 逢魔·JIE·时王    时间: 2020-1-23 17:37
到底这么写呀,对吗?




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