7.1函数的基本知识
使用C++函数必须完成一下三步:
1.提供函数原型。
2.提供函数定义。
3.调用函数
- #include
- using namespace std;
- void simple();
- int main()
- {
- cout<<"main() will call the simple() function:\n";
- simple();
- cout<<"main() is finished with the simple() function.\n";
- return 0;
- }
- void simple()
- {
- cout<<"I'm but a simple function.\n";
- }

7.1.1 定义函数
可将函数分为有返回值和无返回值,其中无返回值的为void函数。
- void functionName(parameterList)
- {
- statement(s);
- return;
- }
function Name:函数名称。
parameter List:传递给函数的参数类型和数量。
statement:声明。
void函数可用于cheer(制定打印次数)
- void cheers(int n)
- {
- for(int i=0;i
- std::cout<<"cheers!";
- std::cout<
- }
有返回值的函数将生成一个值,例如返回一个数的平方根的值sqrt()
- cin>>x;
- m=sqrt(x);
- cout<
输入x至sqrt,传递到m,最后显示m。此时m就是x开平方后的值。
如果代码中含有多个返回值,则第一个返回值返回后代码结束。
- int x,y;
- if(x>y) return x;
- else return y;
返回语句中可以使用表达式
- int cube(int x,int y)
- {
- return x*x*y;
- }
7.1.2 函数原型和函数调用
函数原型大多数隐藏在头文件中。
函数原型必须是一条语句,声明了函数名,返回值类型,参数类型及个数。
函数原型的最简单获取方式,就是函数头加上;
int cheers (int x,int y);
若cheers函数放在main函数后面,则需要再main前面加上此代码,进行一个声明。
原型的功能,保证以下三点:
编译器是否正确处理函数返回值;
编译器使用的参数数目是否正确:
编译器使用的参数类型是否正确;
7.2 函数参数和按值传递
- double cube(double x)
- {
- ****//内容省略
- }
- int main()
- {
-
- double volume = cube(side);
- return 0;
- }
side是一个变量。
cube函数被调用时,改函数创建一个新的名为x的double变量,并将其初始化为x原本的值。这样cube()执行的操作将不会影响main()中的数据。也可以称cube()使用的时side的副本,而不是原来的数据。
其中
用于接收传递值得变量称为:形参。
用于传递给函数的值的称为:实参。
7.2.1 多个参数
函数可以有多个参数,在调用时,使用逗号分隔即可。
- void axis(int x,int y,int z)
- axis(x,y,z)
- double nice,nb;
- for(p=nice,w=nb;p>0;p--,w--)
- {
- *****
- }
若函数的参数类型一致,可以简写。
- void zaza(float a,float b)
- void zbzb(float a,b)
在结尾添加符号即可得到函数原型。
习题
目标
编写一个程序,不断要求用户输入两个数,直到其中的一个为 0。对于每两个数,程序将使用一个函数来计算它们的调和平均数,并将结果返回给 main(),而后者将报告结果。调和平均数指的是倒数平均值的倒数,计算公式如下:
调和平均数=2.0 _ x _ y / (x + y)
要求
- 文件存放在
/home/project 下,源代码文件名为 7-1.cpp; - 代码必须编译为可执行文件,可执行文件名称为
7-1。
提示
输入命令 g++ -o 7-1 7-1.cpp -std=c++11 进行编译,输入命令 ./7-1 运行代码。
- #include
- using namespace std;
- double average(double x,double y)
- {
- double sum;
- sum=2*x*y/(x+y);
- return sum;
- }
- int main()
- {
- double num1,num2;
- double maa;
- while(1)
- {
- cin>>num1>>num2;
- if(num1==0||num2==0)break;
- maa = average(num1,num2);
- }
- printf("%lf",maa);
- return 0;
- }
-
相关阅读:
【PTA-训练day14】L2-026 小字辈 + L1-054 福到了
c#使用UDP进行聊天通信
linux安装部署dolphinschduler2.0.5
SSM+Vue+Element-UI实现智能新冠疫苗接种助手管理系统
如何理解有害菌,病原菌,致病菌?
Linux 配置Java环境
“华为30岁以下员工仅占28%” 上热搜,网友:说好的35岁天花板呢?
javaWep内置对象的使用
Java的集合框架
JavaScript中常见问题及解决
-
原文地址:https://blog.csdn.net/m0_73671341/article/details/132644922