搜索
查看: 2449|回复: 7
打印 上一主题 下一主题

第3章 第六节 逻辑挑战2:三个数怎么办 里面的问题。

[复制链接]
跳转到指定楼层
楼主
发表于 2013-6-8 20:15:19 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
红框里面到底  哪里不行??

最佳答案

查看完整内容

我不觉得哪里违反了题意,题目中说输出最大值,a,b,c都是最大值,将a,b,c都输出完全符合题意。 如果题目的描述是,输出a,b,c中的最大值max,那么确实应该输出一个值 上面是数学角度的解释,如果在编程的角度上来讲 输出一个序列中满足条件f(x)的值,如果这个序列中有复数个值满足f(x),那么一般情况下的实现是输出第一个,这样做是为了减少memory access 但是也有例外,例如序列长度是2 一般会写成return a>b? a:b; ...
沙发
发表于 2013-6-8 20:15:20 | 只看该作者
吐槽有理 发表于 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:01 | 只看该作者
因为要求的是输出最大的数,而红框里如果a=b=c,则输出a,b,c三个值
地板
发表于 2013-6-9 01:02:16 | 只看该作者
吐槽有理 发表于 2013-6-9 00:00
因为要求的是输出最大的数,而红框里如果a=b=c,则输出a,b,c三个值

但是从数学上来说,这样子做一点错都没有
5#
发表于 2013-6-9 01:22:34 | 只看该作者
rosynirvana 发表于 2013-6-9 01:02
但是从数学上来说,这样子做一点错都没有

并不是说有问题,只是题目要求输出最大数,这样只是违背题意而已
6#
 楼主| 发表于 2013-6-9 22:53:56 | 只看该作者
这。。。 我是初学者, 感觉两人说的都对。。。

可是 最佳答案应该给谁?  我也不会分辨啊。。。
7#
发表于 2013-6-9 23:48:18 | 只看该作者
你可以当做一个issue提交给作者

点评

你很活跃哦!加油,有当版主的机会哦~~~~  发表于 2013-6-10 16:33

评分

参与人数 1啊哈币 +1 收起 理由
回遗未来 + 1 赞一个!

查看全部评分

8#
发表于 2020-1-23 17:37:01 | 只看该作者
到底这么写呀,对吗?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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