函数

函数

函数是构成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)定义一个函数是否是质数
扩展:定义函数开根号