“常用公式”在线计算,“设计手册”在线查询
很奇葩的一道题,初看很简单,结果想了很久才写出来:1.int max(const int a[], int n)2.{3.        if(n == 1)4.               return a[0];5.       int i = a[0];6.       int j = max(a+1, n-1);7.        if(i > j)8.               return i;9.       else10.               return j;11.}复制代码结果发现上面的代码是求最大值而不是他的位置……又想了很久始终无解(感觉思路被求最大值绕进去了),求高人解答ps:要求不用global variable,不用static,不可改变max函数的argument
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 支持支持 反对反对

共 1 个关于本帖的回复 最后回复于 2013-8-16 10:14

沙发
王培培 新来的 发表于 2013-8-16 10:14:52 | 只看该作者
研发埠培训中心
1、lz的思路已经很巧妙了,只要把返回值换回成数组的下标,注意比较时取数组值即可。2、代码中还要加一个容错处理,就是当输入值n<1时,(0或负数都可能),函数的返回值,或者做报错信号,或者兼容n=1处理。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注我们

360网站安全检测平台