函数
函数
函数是构成C程序的基本单元
命名的代码块、可复用的模块(功能单元)
降低代码重复、程序的结构简洁、清晰
一个函数的大小,不超过屏
函数结构
- 函数名
- 参数列表,参数类型及名称,0~n
- 函数体
- 返回值类型:由return的值来决定,若无 return 则写 void 关键字
‘’’c
void avg(int a, int b)
{
//函数体
return 1;//‘1’字符char
}
函数定义与调用
‘’’c
// 声明,不包含函数体,可以省略参数名
int menu();
int add(int a,int b);
int add(int, int)
// 定义
int menu()
{
}
函数声明与定义
递归
函数调用自身
循环可以实现,优先使用循环:部分问题只能递归
确定‘收敛条件’
EG1:计算阶乘
n! = 123*4..*n
n! = n * (n-1)!
EG2:计算斐波那契数列
1,1,2,3,5,8,13,21,34,55,89
‘’’c
int fib(int n)
{
//收敛条件:前两个元素都是1
if (n<3)
return 1;
//从第三个元素开始
else{
return fib1(n-1) + fib1(n-2);
}
//if,不写if会无限展开无法返回
return fib(n-1) + fib(n-2);
}
作业
1.计算斐波那契数列,分别用递归和循环来实现
2.计算两个数的最大公约数,int gcd(int,int)分别用递归和循环实现
3.打印1000以内所有的质数,is_prime(int)定义一个函数是否是质数
扩展:定义函数开根号