用函数实现模块化程序计划三

打印 上一主题 下一主题

主题 898|帖子 898|积分 2694

函数的嵌套调用

C语言的函数定义是互相平行的、独立的,也就是说,在定义函数时,一个函数内不能再定义另一个函数,也就是不能嵌套定义,但是可以嵌套调用函数,也就是说,在调用一个函数的过程中,又调用另一个函数

如上执行过程:

  • 执行 main 函数
  • 碰到函数调用的语句,调用函数 a ,流程转到 a 函数
  • 执行 a 函数
  • 碰到函数调用的语句,调用函数 b ,流程转到 b 函数
  • 执行 b 函数
  • b 函数执行完毕,返回 a 函数,继续执行 a 函数
  • a 函数执行完毕,返回 main 函数,继续执行 main 函数
  • main 函数执行完毕,程序竣事
函数的递归调用

在调用一个函数的过程中又出现直接或间接的调用该函数自己,称为函数的递归调用
C语言的特点之一就在于答应函数的递归调用

代码:
  1. //f(x) = f(x - 1) + 2
  2. #include <stdio.h>
  3. int func(int index)
  4. {
  5.         if (1 == index)//递归结束条件
  6.                 return 10;
  7.         return func(index - 1) + 2;//开始递归
  8. }
  9. int main(void)
  10. {
  11.         printf("%d\n", func(5));
  12.         return 0;
  13. }
复制代码
运行结果:

例:用递归法求 n!
  1. //f(n) = f(n - 1) * n
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. long long func(int n)
  5. {
  6.         if ((1 == n) || (0 == n))//递归结束条件
  7.                 return 1;
  8.         return func(n - 1) * n;//开始递归
  9. }
  10. int main(void)
  11. {
  12.         int n;
  13.         scanf("%d", &n);
  14.         printf("%lld\n", func(n));
  15.         system("pause");
  16.         return 0;
  17. }
复制代码
运行结果:


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

科技颠覆者

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表