![算法训练营:海量图解+竞赛刷题(入门篇)](https://wfqqreader-1252317822.image.myqcloud.com/cover/621/39479621/b_39479621.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.6 如何轻松写一个函数
函数是对实现某一功能的代码的模块化封装,其定义如下:
![](https://epubservercos.yuewen.com/41CA5A/20637464308667306/epubprivate/OEBPS/Images/030-1.jpg?sign=1739288633-MpVGepvoWjXj40DGCLnCiYnuyH6wLqOW-0-9c03ee28675f07728c7075e3d8f6cddf)
1. 标准函数
训练1-22:输入n对整数a和b,输出它们的和。
如果前面有函数原型声明,则可以将函数定义放在被调用函数之后。
![](https://epubservercos.yuewen.com/41CA5A/20637464308667306/epubprivate/OEBPS/Images/030-2.jpg?sign=1739288633-eYsIMulRAinjeoEQcLbnsjTRLISDNlW8-0-ac6a64026ae5e45350c03018fca5457b)
2. 无返回值函数
如果没有返回值,则返回值类型为void。
训练1-23:输入n,输出1~n的所有整数(无返回值)。
![](https://epubservercos.yuewen.com/41CA5A/20637464308667306/epubprivate/OEBPS/Images/030-3.jpg?sign=1739288633-BhoIEMFPOvFCtB9bNFSi489dbUwKQaYB-0-5caca07d955be523287c0ee53f2175d7)
3. 无参数函数
训练1-24:输入n,如果n为10的倍数,则输出3个“very good!”。
![](https://epubservercos.yuewen.com/41CA5A/20637464308667306/epubprivate/OEBPS/Images/031-2.jpg?sign=1739288633-snLXnoMw7px4PlpzOahfEq27gR4CDl3l-0-84bf7b4c9781bb4426ad7f709a0c7168)
4. 传值参数函数
传值参数在函数内部的改变出了函数后无效。
训练1-25:输入两个整数a和b,交换后输出。
![](https://epubservercos.yuewen.com/41CA5A/20637464308667306/epubprivate/OEBPS/Images/031-3.jpg?sign=1739288633-8qJnKEBuCxqak47uKy6HOwLw53dK8HrD-0-e2c5a4c25d4620bcaf507205b49081d6)
![](https://epubservercos.yuewen.com/41CA5A/20637464308667306/epubprivate/OEBPS/Images/032-1.jpg?sign=1739288633-PYuV3dxQVkXAZxzcxkFEfEJQn6U3j9CD-0-e639f89cd4591ee3f977526ffcc3840d)
5. 引用参数函数
引用参数在参数前加“&”符号,引用参数在函数内部的改变出了函数后仍然有效。
训练1-26:输入两个整数a和b,交换后输出。
![](https://epubservercos.yuewen.com/41CA5A/20637464308667306/epubprivate/OEBPS/Images/032-2.jpg?sign=1739288633-S1Qq4KfcaKDMONT1DK6uNCOAdgUt51Lk-0-207e2d274b48db55216f4918ddad7811)
6. 数组参数函数
训练1-27:输入n个整数并将其存入a[]数组,求和后输出和值。
![](https://epubservercos.yuewen.com/41CA5A/20637464308667306/epubprivate/OEBPS/Images/032-3.jpg?sign=1739288633-EHcX3RbDJ7cj73FKPq0J1SEQW3Eg3Wfs-0-dc790b7076408b64fc774a1b1f6f0eba)
7. 字符串参数函数
训练1-28:输入n个字母,如果是小写字母,则将其转换为大写字母,输出转换后的字符串。
![](https://epubservercos.yuewen.com/41CA5A/20637464308667306/epubprivate/OEBPS/Images/033-2.jpg?sign=1739288633-uMYIlOQs0F2ECLFvQ48asEW2fcKylKcp-0-b42abb9f380093e805d5f9d592f2f82b)
8. 函数嵌套
训练1-29:输入两个整数a和b,求这两个整数的最大公约数和最小公倍数。
![](https://epubservercos.yuewen.com/41CA5A/20637464308667306/epubprivate/OEBPS/Images/033-3.jpg?sign=1739288633-2VK7k9sjeVkfDldDqJL9sMCLeGamtz5Z-0-e75a286b7e9ea3b58103002892db4120)
9. 函数重载
函数重载(多态)指有多个同名函数,但是每个同名函数的参数数量、类型、顺序不同。
训练1-30:写一个函数,对于字符串类型的数据,取其长度的一半;对于浮点数类型的数据,取其值的二分之一。
![](https://epubservercos.yuewen.com/41CA5A/20637464308667306/epubprivate/OEBPS/Images/034-2.jpg?sign=1739288633-kClqfxM7wE8ZHuGxJSMdo2bwM2TcZ3QI-0-02064bf5548b1f9f6a08718543fe29ef)
![](https://epubservercos.yuewen.com/41CA5A/20637464308667306/epubprivate/OEBPS/Images/035-1.jpg?sign=1739288633-fHpnzoM8JYbaU0aFefFyc8wU6NxHdywR-0-7a235eb32ca3570e6f0563d9a71d0c68)
10. 函数模板
训练1-31:输入两个数a和b(整数或者浮点数),求这两个数的和值。
![](https://epubservercos.yuewen.com/41CA5A/20637464308667306/epubprivate/OEBPS/Images/035-2.jpg?sign=1739288633-FbZMsxMbT4OQXZUUIm7nlHYp01Ovt9WM-0-d7c9cd4e4330daf865cfcebdc7bbf064)
练习:
(1)输入10个学生的程序设计成绩,将其存储在数组中,写3个函数,分别输入、显示和计算平均成绩。
(2)一直输入两个数,直到其中一个为0,对每两个数都求它们的调和平均数。调和平均数=2×x×y/(x+y)。