C语言网

 找回密码
 加入社区!

QQ登录

只需一步,快速开始

查看: 1105|回复: 6

正整数阶乘C语言的递归实现 [复制链接]

Rank: 1

主题
0
帖子
11
C币
24 枚
在线时间
0 小时
发表于 2009-9-10 12:25:17 |显示全部楼层
//正整数阶乘C语言的递归实现, cyuyan.com.cn
  1. #include<stdio.h>
  2. int jiecheng(int);
  3. int main()
  4. {
  5.     int n=0;
  6.     printf("请输入一个正整数:\n");
  7.     scanf("%d",&n);
  8.     printf("阶乘结果是:%d\n",jiecheng(n));
  9.     return 0;
  10. }
  11. int jiecheng(int n)
  12. {
  13.     if(n<=1)
  14.     {
  15.         return 1;
  16.     }else
  17.     {
  18.         return n*jiecheng(n-1);
  19.     }
  20. }
复制代码

Rank: 1

主题
0
帖子
7
C币
7 枚
在线时间
0 小时
发表于 2010-6-5 18:28:58 |显示全部楼层
谢谢楼主的分享!

Rank: 1

主题
0
帖子
10
C币
11 枚
在线时间
1 小时
发表于 2010-6-14 11:38:36 |显示全部楼层
我不明白这个return 0;有什么用。望楼主指教

Rank: 6Rank: 6

主题
68
帖子
348
C币
578 枚
在线时间
57 小时
发表于 2010-7-11 08:45:31 |显示全部楼层
我不明白这个return 0;有什么用。望楼主指教
fdsuf4 发表于 2010-6-14 11:38


请查看本论坛里面一篇关于main函数原型的帖子, 里面有讨论,

Rank: 1

主题
0
帖子
1
C币
1 枚
在线时间
0 小时
发表于 2010-7-12 17:26:24 |显示全部楼层
  1. #include<stdio.h>
  2. int jiecheng(int);
  3. int main()
  4. {
  5. int n=0;
  6. printf("请输入一个正整数:\n");
  7. scanf("%d",&n);
  8. printf("阶乘结果是:%d\n",jiecheng(n));
  9. return 0;
  10. }
  11. int jiecheng(int n)
  12. {
  13. return a?f(a-1)*a:1;
  14. }
复制代码

Rank: 2

主题
3
帖子
113
C币
117 枚
在线时间
7 小时
发表于 2010-9-4 18:43:33 |显示全部楼层
return 0:告诉操作系统程序正常结束。
如果你用codebolcks+mingw会发现,非正常结束——比如执行过程中点击关闭,返回的值不是0,并且被用红色标注(codeblocks显示返回值,其他的IDE不知道)

Rank: 6Rank: 6

主题
68
帖子
348
C币
578 枚
在线时间
57 小时
发表于 2010-9-5 17:39:04 |显示全部楼层
不幸的告诉 楼主  这个程序不健壮啊
没有考虑溢出的问题啊
您需要登录后才可以回帖 登录 | 加入社区!

C语言 ( 粤ICP备11042647号-2 )

GMT+8, 2012-2-6 15:18

©2009-2011 cyuyan.com.cn

回顶部