函数调用哈现代服务职宋琳Version1.0Version1.0函数如何定义?回顾函数类型函数名(形参类型1形参名1,形参类型2,形参名2……)函数类型函数名(形参类型1形参名1,形参类型2,形参名2……){}{}函数体函数体31、intsqr(intx){inty;y=x*x;printf(“y=%d”,y);}例题:例题:2、voiddisplayDiscount(){floatdiscount,price,discount_amt;scanf(“%f”,&discount);scanf(“%f”,&price);discount_amt=discount*price;printf(“Discountamountis%f”,discount_amt);}4函数调用目标:掌握函数调用的方式。目标:掌握函数调用的方式。voidmain(){......displayDiscount();......}voiddisplayDiscount(){......}在调用函数时,控制流将转至函数函数执行完毕后,程序将从函数调用后的下一个语句继续执行5例1:问题:显示给定数字的4次方。(如果给定数字为5,则输出结果为54的结果)显示给定数字的4次方。(如果给定数字为5,则输出结果为54的结果)1.接受一个给定数字num。2.使用pow()内置函数,计算num的4次方。3.显示结果。算法算法6输入数据输入数据调用函数调用函数输出结果输出结果内存:num调用:pow(3,4)计算3*3*3*3返回结果:81内存:num调用:pow(3,4)计算3*3*3*3返回结果:8137先显示消息“HappyNewYear”,然后显示“Haveaprosperousnewyear!”,这两个消息下面都显示一条用“=”符号形成的水平线。1.显示消息“HappyNewYear”。2.调用子程序display,显示一条水平线。3.显示“Haveaprosperousnewyear!”。4.调用子程序display,以显示一条水平线。子程序display:1.使用“=”符号显示水平线。2.返回到调用程序。算法示例2问题:8示例2工作原理HappyNewYear===============================Haveaprosperousnewyear!===============================91.使用子程序get_age,接受第一个人的年龄age1。2.使用子程序get_age,接受第二个人的年龄age2。3.使用子程序get_age,接受第三个人的年龄age3。4.检查age1是否大于age2和age3。5.如果是,则将年龄为age1的那个人显示为年龄最大者。示例3接受三个人的年龄,找出年龄最大者。问题:算法106.否则,检查age2是否大于age1和age3。7.如果是,则将年龄为age2的那个人显示为年龄最大者。8.否则,检查age3是否大于age1和age2。9.如果是,则将年龄为age3的那个人显示为年龄最大者。子程序get_age:1.接受某人的年龄。2.将年龄值返回给调用程序。示例3接受三个人的年龄,找出年龄最大者。问题:算法11示例3工作原理ageageage1age1age2age2age3age3Enterage:34_3412示例3工作原理ageageage1age1age2age2age3age3Enterage:45_45Enterage:343413示例3工作原理ageageage1age1age2age2age3age3Enterage:22_22Enterage:343445Enterage:4514示例3工作原理age1age1age2age2age3age3Personhavingage45istheeldest22Enterage:453445Enterage:22Enterage:3415总结函数就是程序中的单元或模块。可以在程序中多次调用它们,以解决某个特定的任务。函数调用时,程序转到函数,函数执行结束后,返回到调用处继续向下执行。