简单递归函数c语言程序,C语言简单记-函数、递归

“C语言简单记”基于我以前学习过程中做过的笔记、随笔,特意整理了一下,只是简单的记录了一些比较重要的知识点,不会去深入探究,面向的是一些有语言基础的人查找阅读,还请见谅,谢谢~~~

函数

返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,…)

{

函数体

}

主要作用:

1.将一个常用的功能封装起来,方便以后调用

2.提高代码重用率

形参: 在定义函数时,函数名后面的小括号()中定义的变量称为形式参数,简称形参,形参一定是变量

形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只有在函数内部有效。函数调用结束返回主调函数后则不能再使用该形参变量。

实参: 在调用函数时传入的值称为实际参数,简称实参,实参可以是常量,变量,表达式

注意点:

1) 返回值可以和返回值类型不一样,系统会对返回值进行自动类型转换(隐式转换)

2) 如果函数没有返回值,那么返回值类型就写void

3) 函数名称不能相同,形参,返回值类型不同也不行,即不能重载

4) c语言不允许函数嵌套

5) 函数可以没有返回值类型,默认返回int类型

6) 调用函数时传递的实参个数必须和函数的形参个数必须保持一致

return 0: 返回0表示程序正确结束,其他值代表程序非正常结束

argc: 系统传递进来的参数,默认为1

argv: 系统传递进来的参数的实际值,默认是程序的名称

递归练习

需求:要求用户输入一个大于0的数,如何不大于0一值提示,知道大于0为止

#include

void scanNumber();

int main(int argc, const char * argv[]) {

scanNumber();

return 0;

}

void scanNumber(){

// 接收值

printf("请输入一个大于0的数字:\n");

int number = -1;

scanf("%d", &number);

// 判断

if (number <= 0) {

scanNumber();

}else{

printf("m=%d\n", number);

}

// 递归要有明确的结束条件,防止死循环

}

用递归算法求累加和、累乘

#include

int sum(int a); // 求累加和

int mul(int b);// 求累乘

int main(){

// 接收值

printf("请输入一个大于0的数字:\n");

int number = -1;

scanf("%d", &number);

printf("sum = %d\n", sum(number));

printf("mul = %d\n", mul(number));

return 0;

}

int sum(int a){

int result = 1;

if(a == 1){

return result;

}else{

return sum(a-1) + a;

}

}

int mul(int b){

int result = 1;

if(b == 1){

return result;

}else{

return uml(b-1) * b;

}

}

函数的嵌套调用与递归调用有什么区别?

答:

函数的嵌套是语言特性,递归是逻辑思想;

函数嵌套就是允许函数中调用另一个函数,

递归通过函数嵌套来实现,自己调用自己,

总的来说,函数嵌套就是函数调用函数,递归就是函数调用自己,是函数嵌套的一个特例

更多关于iOS学习开发的文章请登陆我的个人博客www.zhunjiee.com,欢迎前来参观学习

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值