博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(二十)自行制作函数
阅读量:6007 次
发布时间:2019-06-20

本文共 4132 字,大约阅读时间需要 13 分钟。

我们有时候需要自行制作一个函数,例如,我们要计算输入值*200,每次都打*200已经有一些麻烦了。假如我们要做的是*200+15然后再开方,明显就麻烦的多。

因此,自己制作一个函数,通过调用这个函数,然后给一个返回值,就方便的多。

 

例如,我们要做一个函数,他的效果是开方。然后我们知道开方的函数是sqrt(),他需要调用的文件头是 #include<cmath>。于是,我们可以这么做,上代码:

#include 
//调用输入输出流的那个库,反正就是那个#include
//调用计算开方的数学的那个库using namespace std; //调用名称空间,反正意思就是说可以省略std,用在这里,2个函数都可以省略,如果用在某一个函数里,那么另外一个就不能省略。double kaifang(double); //自定义函数,double表示是 双精度浮点数 8字节(反正可以显示小数)。里面的double表示输入值也可以是小数int main() //主函数{ cout << "这里你可以输入一个数字,他会自动显示这个数值开方后的结果。" << endl; //废话1 cout << "请输入吧:"; //废话2 double a; //定义双精度浮点数8字节(反正意思是可以是小数) cin >> a; //输入 你要计算的数字 cout << "你输入的数字是" << a << endl; //废话3 cout << "现在开始计算a开方后的结果" << endl; //废话4, double b; //定义你要输出的结果也是一个小数,用int的话就只能显示整数部分了。 b = kaifang(a); //b=调用的函数kaifang的返回值,其中a是输入值,并且a可以是小数。 cout << "开方结果是: " << b; //废话5,外加后面显示结果b cout << "计算结束。" << endl; //废话6 system("pause"); //暂停,让你能看结果 return 0; //无返回值}double kaifang(double a) //自定义函数,他的输入值是double a(即小数a),他的返回值也是小数。{ return sqrt(a); //return 表示返回值,返回值是开方a。}

其中,第二个函数也可以写为:

double kaifang(double a){	double c;	c = sqrt(a);	return c;}

效果是一样的,只不过第二种写法要多定义一种变量。

第一个函数的

double b;	//定义你要输出的结果也是一个小数,用int的话就只能显示整数部分了。	b = kaifang(a);	//b=调用的函数kaifang的返回值,其中a是输入值,并且a可以是小数。	cout << "开方结果是: " << b;	//废话5,外加后面显示结果b

也可以写为:

cout << "开方结果是: " << kaifang(a);	//废话5,外加后面显示结果b

效果也是一样的。

 

另外,假如我们把

double kaifang(double);和double kaifang(double a)

改为

int kaifang(double); 和int kaifang(double a)

那么假如结果是小数的话,返回值也只能是小数,例如输入1.44,正常结果是1.2,他返回结果是1。

 

那么假如我们需要返回的不是数字,而是一串文字怎么办,并且输入值可能是数字,甚至是多个数字,和上面类似那么我们这么做。

#include 
//调用输入输出流的那个库,反正就是那个#include
//调用计算开方的数学的那个库using namespace std; //调用名称空间,反正意思就是说可以省略std,用在这里,2个函数都可以省略,如果用在某一个函数里,那么另外一个就不能省略。char32_t xianshi(double , int); //自定义函数,double表示输入值可以是小数,int表示输入的第二个值是整数。char32_t 表示输出内容是字符串(即一串文字)int main() //主函数{ cout << "输入第一个数字,可以显示第一个数字的乘方和整数部分的开方。" << endl; //废话1 double a; //定义这个可以为小数的数a cout << "请输入这个数字吧: "; //废话2 cin >>a; //输入这个数字 cout << "你输入的数字为:" <
<< endl; //确认,并告诉你你输入的第一个数字是什么(由于double限制,只能显示6个数字。如果超出就会显示的很怪(我暂时看不懂) cout << "你再输入一个数字,他可以显示第一个数字减去第二个数字的差。" << endl; //废话3 cout <<"需要注意的是,第二个数需要是整数,如果是小数,则只处理小数部分。" << endl; //为了说明如何同时输入两个变量给自定义函数,所以加入第二个数 int b; //定义第二个数字为整数b, cin >> b; //输入b cout << "你输入的第二个数字为:" << b << " 。请注意,没有小数部分" << endl; //让你确定你输入的第二个数字是什么。 xianshi(a,b); //执行自定义函数,输入的两个变量分别为a 和 b。由于不需要返回计算结果,因此单纯写出函数即可,自定义函数能显示其内部要求输出的内容。 system("pause"); //暂停,让你能看结果 return 0; //无返回值}char32_t xianshi(double a,int b) //自定义函数,这里是函数体,并接受一个参数——即输入值是double a(即小数a),他的返回值也是小数。{ int c; //定义整数c,目的是为了让整数c 等于小数a的整数部分 c = a; //由于int 问题,所以double a的小数部分被省略。 cout << "————————自定义函数的分割线————————" << endl; //为了区分第一个函数的内容 cout << "第一个数字的整数部分为:" << c << endl; //显示a的整数部分 cout << "第一个数字的小数部分为: " << a-c << endl; //带小数的a减去其整数部分,即为小数部分的a cout << "通过计算," << a << "的乘方是: "<< pow(a, 2) << endl; //pow(a,2)表示a的二次方,这个函数无需调用其他函数原型(即开头的#include<>) cout << "而第一个数字整数部分的开方是:" << sqrt(c) << endl; //sqrt(c)表示对c进行开方,这个函数需要调用函数原型,即开头的#include
cout << "————分割线2,处理第二个数————" << endl; //分割线,用于区分,比较容易分辨 cout << "第二个数为:" << b << endl; //确认第二个数,免得写代码的人自己糊涂搞错 cout << "而第一个数字减去第二个数字的差为:" << a - b << endl; //告诉你计算结果是什么。 return 0; //因为不需要返回值,只需要输出文本,因此return 0}

其中需要注意的是,xianshi() 这个函数,int main函数之前有 char32_t xianshi(double,int); ——注意有分号; 。在int main()函数内部有 xianshi(a,b) 。在自己的函数是这么写的 char32_t xianshi(double a,int b){ 函数内容 }。

其中相对应的是,在#include<> 和 int main() 中间的 

char32_t xianshi(double , int);

和在编写自己函数内容时的:

char32_t xianshi(double a,int b)

第一个有分号,第二个无分号。第一个是double和int,表示输入的变量类型,对应第二个就要是double a和int b(如果不对应就会提示出错)。只有在第二个里面有的变量,才会引用到char32_t xianshi(double a,int b){ 函数内容 }的函数内部之中,否则,里面的函数是不认识变量a和变量b的。

 

在int main()函数里面调用时,用法是直接输入  xianshi(a,b); 即函数名加两个括号再加你要往里面输入的变量a和变量b。就能正常调用了,假如没有a和b,那么无输入值的函数就会提示出错。

 

另外,之所以用char32_t,是因为要显示的是一串文字,如果只需要返回数字的话,那么比如可以是int abc(int ,int ); 和 c=abc(a,b) 以及 int abc(int a,int b){return a*b;} 这样,那么c就等于a*b了。

 

又注意,在后面的int abc(int a,int b){return a*b;} 之中。不一定非要是(int a,int b),也可以是(int e,int f){return e*f;} 。即——只是表示在调用的时候定义输入的变量。但需要注意的是,不能省略或者改动2个int,如果2个不一样,也不能颠倒。

 

第三个备注:char32_t xianshi(double a,int b) 也可以写为 void xianshi(double a,int b) 。 第一个返回的是字符串,第二个无返回值。所以其实第二个应该更好点。

转载地址:http://lnvmx.baihongyu.com/

你可能感兴趣的文章
storm分布式集群的搭建
查看>>
VB.NET 生成DBF文件
查看>>
VBS脚本学习:打印乘法口诀表
查看>>
谭浩强《C程序设计》书后习题 第八章
查看>>
[日更-2019.4.19] Java的设计模式(4)-观察者模式
查看>>
网络游戏中的同步问题
查看>>
数独游戏源码
查看>>
kvm遇到的问题
查看>>
使用PHP CURL 模拟HTTP实现在线请求工具-toolfk程序员工具网
查看>>
我的友情链接
查看>>
OSPF域间汇总、域×××总
查看>>
MGCP协议故障排除示例--对接中兴平台兼容性问题context字段非空
查看>>
mysql学习笔记(3)创建删除数据库
查看>>
Eclipse显示隐藏文件
查看>>
expect 简单样例
查看>>
rabbitMQ安装部署
查看>>
编译安装nginx 1.9.15
查看>>
遇到这些书我觉得很幸运
查看>>
tcp 拥塞窗口
查看>>
[SQL in Azure] Getting Started with SQL Server in Azure Virtual Machines
查看>>