问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C语言中函数怎么自己调用自己

发布网友 发布时间:2022-04-26 04:42

我来回答

8个回答

热心网友 时间:2022-04-30 16:49

一,函数调用的一般形式为:
  函数名(实参列表);
  实参可以是常数、变量、表达式等,多个实参用逗号,分隔。
  在c语言中,函数调用的方式有多种,例如:
  在函数调用中还应该注意的一个问题是求值顺序的问题。所谓求值顺序是指对实参列表中各个参数是自左向右使用呢,还是自右向左使用。对此,各系统的规定不一定相同。
  【示例】在vc6.0下运行以下代码。
  运行结果:
  8
7
6
7
  可见vc
6.0是按照从右至左的顺序求值。如果按照从左至右求值,结果应为:
  9
10
9
8
  函数的嵌套调用
  函数不能嵌套定义,但可以嵌套调用,也就是在一个函数的定义中出现对另一个函数的调用。这样就出现了函数的嵌套调用,即在被调函数中又调用其它函数。
  【示例】计算sum
=
1!
+
2!
+
3!
+
...
+
(n-1)!
+
n!
  分析:可以编写两个函数,一个用来计算阶乘,一个用来计算累加的和。
  #include
  //求阶乘
  long
factorial(int
n){
  int
i;
  long
result=1;
  for(i=1;
i<=n;
i++){
  result
*=
n;
  }
  return
result;
  }
  //
求累加的和
  long
sum(long
n){
  int
i;
  long
result
=
0;
  for(i=1;
i<=n;
i++){
  //嵌套调用
  result
+=
factorial(n);
  }
  return
result;
  }
  int
main(){
  printf("1!+2!+...+9!+10!
=
%ld\n",
sum(10));
  return
0;
  }
  二,有些自定义函数可能会被频繁的调用,所以写在一个c文件里是不太方便的。应该把这些自定义的函数写在一个c文件里,同时在一个头文件.h文件里声明。主函数可以通过引用该头文件然后调用需要的自定义函数。
  1,举例:在头文件(.h)里声明自定义函数
  2,在一个c语言文件里写下自定义函数的实现
  3,在主函数中调用自定义函数
  4,最后编译所有的涉及到的c文件,头文件可以不管

热心网友 时间:2022-04-30 18:07

你说的是递归调用,举例:

int fun(int x)
{
 int y;  
 if(x>2)
        y=fun(x-1)*fun(x-2);
else
        y=1;
return y;
}
void main(void)
{
    int n=8;
    printf("%d",fun(n));
}

热心网友 时间:2022-04-30 19:42

付费内容限时免费查看回答您稍等一下哦,马上就好,感谢您的等待

Copyright © 1999-2020, CSDN.NET, All Rights Reserved

 登录

塔塔君Minkun

关注

c语言中怎么调用自己定义的函数,c语言中怎么调用自己定义的函数? 转载

2021-05-24 21:19:26

 1点赞

塔塔君Minkun 

码龄4年

关注

一,函数调用的一般形式为:

函数名(实参列表);

实参可以是常数、变量、表达式等,多个实参用逗号,分隔。

在C语言中,函数调用的方式有多种,例如:

在函数调用中还应该注意的一个问题是求值顺序的问题。所谓求值顺序是指对实参列表中各个参数是自左向右使用呢,还是自右向左使用。对此,各系统的规定不一定相同。

【示例】在VC6.0下运行以下代码。

运行结果:

8 7 6 7

可见VC 6.0是按照从右至左的顺序求值。如果按照从左至右求值,结果应为:

9 10 9 8

函数的嵌套调用

函数不能嵌套定义,但可以嵌套调用,也就是在一个函数的定义中出现对另一个函数的调用。这样就出现了函数的嵌套调用,即在被调函数中又调用其它函数。

【示例】计算sum = 1! + 2! + 3! + ... + (n-1)! + n!

分析:可以编写两个函数,一个用来计算阶乘,一个用来计算累加的和。

#include

//求阶乘

long factorial(int n){

int i;

long result=1;

for(i=1; i<=n; i++){

result *= n;

}

return result;

}

// 求累加的和

long sum(long n){

int i;

long result = 0;

for(i=1; i<=n; i++){

//嵌套调用

result += factorial(n);

}

return result;

}

int main(){

printf("1!+2!+...+9!+10! = %ld\n", sum(10));

return 0;

}

二,有些自定义函数可能会被频繁的调用,所以写在一个C文件里是不太方便的。应该把这些自定义的函数写在一个C文件里,同时在一个头文件.h文件里声明。主函数可以通过引用该头文件然后调用需要的自定义函数。

1,举例:在

热心网友 时间:2022-04-30 21:33

直接调用 跟调用其他函数没区别

热心网友 时间:2022-04-30 23:41

二楼正解,递归调用 int fun()
{
fun();
}

热心网友 时间:2022-05-01 02:06

用递归调用方式

热心网友 时间:2022-05-01 04:47

递归调用。

热心网友 时间:2022-05-01 07:45

这个叫递归函数。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
姐妹们,哥伦比亚的徒步鞋怎么样?下个月就要去吴越古道户外徒步旅行... 徒步装备选哪个牌子好 徒步小白上线!想问问大神们徒步鞋哥伦比亚户外活动性能如何?方便吗? 去医院怎么检查自己缺钙和缺维生素? 查缺钙做什么检查 骨骼缺钙怎么检查 检查缺钙查什么 joryaweekend是什么牌子 剪映在那里修改视频尺寸 剪映如何修改视频画面尺寸 修改视频画面尺寸方法分享 淘宝新品标题怎么写?有什么主意事项? 淘宝如何写宝贝标题 小标题大学问,淘宝标题该怎么写 淘宝店铺怎么写标题 欢迎光临小店哦 华为mate40出来有没有人买? 华为mate40抢不到,是不是等vivo X60 Pro+呢? Mate40是不是在不会在实体店以官网价买到了? 想换手机,一直用华为的手机,搜了一下发现p40、mate40官方旗舰店买不到,其他店里都六七千多,有点太贵 mate40还不放货都去买苹果三星了 为什么各大网上商城没有华为mate40这个机型的预售? 微信能看出是谁投诉吗 怎样才能看出微信是把我删除还是屏蔽了 在微信上聊天能看出对方是真心吗? 微信能看出谁在线吗 在微信“聊天”中,能看出来女人是否在“暗恋”我吗? 通过微信聊天能看出女人是否喜欢你吗? 微信怎么能看出对方拉黑还是删除了自己 从微信里能看出男人是不是爱你入骨吗? 从微信上,能看出男人有没有“爱你如命”吗? 一个人是否在乎你,从他的微信里能够看出来吗? Js编程语言中,自调用函数是什么?举个Js代码例子解释一下! js中的自调用函数 excel自定义函数怎么调用自定义函数 javascript函数怎么自己调用自己啊? php 函数自调用问题 c语言递归算法,主函数main能自调吗? 为什么再次调用JavaScript函数时,自调函数只执行一次?counter为什么不归... Matlab中函数怎样调用自定义函数 excel中能不能输入一个函数,按表格中给定的数据自动调整行高喃? matlab 如何建立、调用自定义函数? C语言中,函数是否可以直接或间接调用自己!!求大神!!求解析!!! js自定义函数调用自定义函数 Matlab 函数中怎么调用自身,进行自循环? C++函数不可以调用自己么? 函数调用过程是怎么实现的 抚州临川新天地最新房价?商业贷款多少少利息 江西房贷利率最新消息2022 抚州市2015年9月份公积金贷款利率是多少我公积金贷款25万,贷款年限12年,请问每月还房贷要多 解冻不了,人脸识别不通过怎么办? 怎么将word表格的外边框设置为蓝色1.5磅,内边框设置为蓝色1磅