C语言6--递归和变参函数

5.递归函数
(1)概念
有些问题本身比较复杂,但是可以通过拆分得到几个小问题,只要把小问题解决就等于把原始问题解决了。如果解决这些小问题的方法和原始问题一致,只是规模所缩小,这种问题就可以用递归来解决。
1+…+n = (1+…+n-1)+n

在C语言中药解决递归问题可以使用递归函数
自己调用自己的函数叫递归函数

(2)递归函数的编写方法
1)首先在函数中用语句描述问题的拆分方式(使用递归)
2)在函数开头写一个分支用于描述不可拆分的情况(不能使用递归),该分支保证让函数结束

6.变参函数
1.概念
参数不固定的函数叫变参函数,比如printf函数就是变参函数。

在声明和定义函数实在形参列表写上…表示该函数是一个变参函数,…要写到形参列表最后。

2.获取变参函数的参数
使用C语言提供的语法(宏)去获取变参函数,使用这些语法需要包含stdarg.h头文件
va_list --------- 类型,用于指向变参参数

va_start(va_list变量,变参函数之前的变量) ---------- 获取变量之后的变参

va_arg(va_list变量,参数类型) --------------- 根据类型获取变参列表中的参数

va_end(va_list变量) ----------- 变参处理结束

2.编写一个函数,计算指数 x^y,x是任意浮点数,y是任意整数。
使用递归和循环分别实现

3.编写函数求斐波拉契数列的第n位的值,斐波拉契数列的后一项是前两项之和
1,1,2,3,5,8,13,21,34,…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值