通过c语言用函数求双胞胎数,C语言程序设计 函数及其应用1.ppt

C语言程序设计 函数及其应用1.ppt

6.1 模块与函数 C语言程序由基本语句和函数组成,每个函数可完成相对独立的任务,依一定的规则调用这些函数,就组成了解决某个特定问题的程序。 任务、模块与函数的关系: 6.2 函数的定义与调用 (1)库函数(标准函数):系统提供(2)自定义函数:用户自己写 C语言程序处理过程全部都是以函数形式出现,最简单的程序至少也有一个main函数。函数必须先定义和声明后才能调用。   标准库函数 C语言有丰富的库函数,这些函数的说明在不同的头文件(*.h)中。 自定义函数 “函数”的主要知识点 一、函数的定义 二、函数的参数和返回值 三、函数的调用 四、嵌套和递归 五、变量的作用域 函数举例 #include main(){ int a,b,m; ???????????? ? /*说明变量*/? int max(int a,int b);?? /*函数声明*/? scanf("%d,%d",&a,&b);?? /*调用库函数scanf*/? m=max(a,b); ?????????? ?? /*调用字定义函数max*/? printf("max=%d\n",m));? /*调用库函数printf*/? getch(); ????????????? ?? /*调用库函数getch*/} 函数举例 int max(int a,int b)????? /*定义函数max*/{? int y;? y=(a>b)? a:b; /*条件表达式 */ return y;} 自定义函数的声明 求1!+2!+3!+…+10! 算法 i =1; s=0; 当 i <= 10 s=s+ i! 定义求 i! 的函数 求1!+2!+3!+…+10! 程序 void main() { long mm( int ); /*自定义求阶乘函数应先声明 */ int i; long s=0; for (i =1; i <=10; i ++) s+= mm(i ); /*调用求阶乘函数,求I的阶乘 */ printf(“\n%ld”,s); } 定义求 n! 的函数 long mm( int n) { long t=1; int i; for (i =1; i <=n; i ++) t *= i ; return t ; } 函数的参数 int max(int a,int b) {? int y;? y=(a>b)? a:b;? return y; ??????????????} 形式参数与实际参数的关系 形式参数在函数中是变量名,?在函数调用时,形参被分配相应的内存 实际参数是表达式??负责向对应的形参标识的内存单元传递数据 实参与形参必须个数相同 对应的形参和实参的类型必须一致  实参与形参 例:主调函数中有如下语句: ? scanf("%d,%d",&a,&b);? m=max(a,b+3); 如果输入 6,2 函数 int max(int a,int b) 形参 a 得到第一个实际参数a的值 6 形参 b 得到第二个实际参数b+3的值 5   函数返回值 函数返回值通过return语句获得 函数返回值的类型就是函数的类型 ? return y;? ? 将变量y的值返回给调用者? return y+3;? ? 将表达式的值返回给调用者 return 的数据类型与函数的类型矛盾时,自动将数据转换成函数的类型 int funct1() { char ch;? ? while?? ((ch=getch( ))'z')??? ;?? return ch; } 调用: i=funct1(); /* 返回的是int类型 */ 函数没有返回值, 函数定义成空类型 void putline()?? { int i;???? for (i=0;i<35;i++)????? printf("-");???? printf("\n");?? } 调用函数 6.3 函数的递归调用 递归方法求n! 递归方法求n! 辗转相除法求最大公约数 求 m和 n 的公约数算法 if (m % n) == 0 n 是公约数; else

你可能感兴趣的:(通过c语言用函数求双胞胎数)