免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2823 | 回复: 7

[C] 大家在平时的工作中有遇到这样或者类似的代码吗 [复制链接]

论坛徽章:
9
寅虎
日期:2013-12-02 12:49:22巨蟹座
日期:2014-07-18 18:13:34卯兔
日期:2014-07-25 14:43:08子鼠
日期:2014-07-26 10:10:51酉鸡
日期:2014-07-31 15:09:562015亚冠之本尤德科
日期:2015-05-19 09:27:382015亚冠之卡尔希纳萨夫
日期:2015-06-20 10:30:212015亚冠之阿尔纳斯尔
日期:2015-07-01 20:46:062015亚冠之城南
日期:2015-07-15 21:12:00
发表于 2014-05-15 11:18 |显示全部楼层
  1. #define MAX(a, b) ((a)>(b)?(a):(b))

  2. int a[] = { 9, 3, 5, 2, 1, 0, 8, 7, 6, 4 };

  3. int max(int n)
  4. {
  5.         return n == 0 ? a[0] : MAX(a[n], max(n-1));
  6. }

  7. int main(void)
  8. {
  9.         max(9);
  10.         return 0;
  11. }
复制代码
这是宋劲衫的linux C一站式编程书中的一个例子

感觉这样的例子很打击人的自信心,以本人的逻辑思维能力很难想象这样的递归是如何展开和收回的

c初学者 问下大家  在平时的工作中会遇到这样的代码吗? 比如读懂甚至是写

论坛徽章:
1
CU十二周年纪念徽章
日期:2013-10-24 15:41:34
发表于 2014-05-15 11:29 |显示全部楼层
没法儿想象就运行一下,看看也猜个差不多,虽然确实没写过这样的  - -|

论坛徽章:
3
巳蛇
日期:2014-04-24 17:25:352015年辞旧岁徽章
日期:2015-03-03 16:54:15NBA常规赛纪念章
日期:2015-05-04 22:32:03
发表于 2014-05-15 11:29 |显示全部楼层
不少。。
递归的话,着重看他跳出递归的条件,这样反推很快就明白了。

论坛徽章:
324
射手座
日期:2013-08-23 12:04:38射手座
日期:2013-08-23 16:18:12未羊
日期:2013-08-30 14:33:15水瓶座
日期:2013-09-02 16:44:31摩羯座
日期:2013-09-25 09:33:52双子座
日期:2013-09-26 12:21:10金牛座
日期:2013-10-14 09:08:49申猴
日期:2013-10-16 13:09:43子鼠
日期:2013-10-17 23:23:19射手座
日期:2013-10-18 13:00:27金牛座
日期:2013-10-18 15:47:57午马
日期:2013-10-18 21:43:38
发表于 2014-05-15 12:06 |显示全部楼层
实际中较少用递归

论坛徽章:
11
技术图书徽章
日期:2014-03-01 14:44:34天蝎座
日期:2014-05-21 22:11:59金牛座
日期:2014-05-30 17:06:14
发表于 2014-05-15 12:25 |显示全部楼层
虽然实际少用递归,但比这个函数逻辑更复杂的比比皆是,关键是这个递归没什么复杂的啊,楼主在用电脑的逻辑模拟这个递归吗?
请用人脑思考,简化问题,屏蔽无关细节,用数学归纳法类比,外加一个函数递归的终止条件(n==0时,a[0])。在人工智能发展到Matrix或SkyNet之前,用电脑的机械逻辑来思考,完全是自虐。

论坛徽章:
9
寅虎
日期:2013-12-02 12:49:22巨蟹座
日期:2014-07-18 18:13:34卯兔
日期:2014-07-25 14:43:08子鼠
日期:2014-07-26 10:10:51酉鸡
日期:2014-07-31 15:09:562015亚冠之本尤德科
日期:2015-05-19 09:27:382015亚冠之卡尔希纳萨夫
日期:2015-06-20 10:30:212015亚冠之阿尔纳斯尔
日期:2015-07-01 20:46:062015亚冠之城南
日期:2015-07-15 21:12:00
发表于 2014-05-15 14:14 |显示全部楼层
本帖最后由 lifayi2008 于 2014-05-15 14:15 编辑

呵呵  受教  之前感觉能在脑子中构造一个函数栈帧的大致模型才算是看懂
这个因为加上函数宏替换  貌似需要两次递归展开   大脑中的内存就明显不够用了回复 5# timespace


   

论坛徽章:
4
水瓶座
日期:2013-09-06 12:27:30摩羯座
日期:2013-09-28 14:07:46处女座
日期:2013-10-24 14:25:01酉鸡
日期:2014-04-07 11:54:15
发表于 2014-05-17 13:09 |显示全部楼层
练少了脑子还没开窍,把算法和数据结构基础加强,多刷点题。

论坛徽章:
35
双子座
日期:2014-05-09 17:56:38程序设计版块每日发帖之星
日期:2015-08-30 06:20:00程序设计版块每日发帖之星
日期:2015-12-24 06:20:0015-16赛季CBA联赛之上海
日期:2015-12-27 11:07:07程序设计版块每日发帖之星
日期:2016-01-12 06:20:0015-16赛季CBA联赛之北京
日期:2016-01-15 01:01:2115-16赛季CBA联赛之浙江
日期:2016-01-15 22:38:20程序设计版块每日发帖之星
日期:2016-01-18 06:20:00每日论坛发贴之星
日期:2016-01-18 06:20:0015-16赛季CBA联赛之北控
日期:2016-01-30 21:43:01程序设计版块每日发帖之星
日期:2016-02-08 06:20:0015-16赛季CBA联赛之山西
日期:2016-02-20 10:54:41
发表于 2014-05-17 22:30 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP