(二十)自行制作函数

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

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

 

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

#include <iostream>  //调用输入输出流的那个库,反正就是那个
#include <cmath>	//调用计算开方的数学的那个库
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 <iostream>  //调用输入输出流的那个库,反正就是那个
#include <cmath>	//调用计算开方的数学的那个库
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 << "你输入的数字为:" <<a<< 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 <cmath>
	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) 。 第一个返回的是字符串,第二个无返回值。所以其实第二个应该更好点。

时间: 2024-08-01 08:51:25

(二十)自行制作函数的相关文章

仿酷狗音乐播放器开发日志二十——换肤功能背景图片控件的制作(附源码)

转载请说明原出处,谢谢~~           <仿酷狗音乐播放器开发日志二十>里做了换肤功能的一部分,今天完成其他的部分.酷狗的换肤窗口里的背景图可以让用户选择来换图,原酷狗的背景图的小图标,有normal.hover.down等多种状态,鼠标移动上去便会发生变化.如图        当鼠标经过时会有个黑色图片覆盖,边框变为浅蓝色.并且在他上面显示出作者的一些信息.要实现这个效果应该另外开发一个控件来支持动态的信息展示效果.我把这个小控件的开发过程和源码发一下,给学习做duilib控件的新手

二十六步获得网站流量

原文标题:The A to Z Guide to Getting Website Traffic 原文作者:Shawn Campbell 原文地址:http://www.sitepronews.com/archives/2006/apr/12.html 这是孙波翻译的一篇文章,主要讲的是英文网站开发的文章,大部分内容对于中文内容的网站也有指导意义,供参考.转载本文请保留原文出处和作者以及翻译作者信息.以下是译文. 二十六步获得网站流量 1999年9月的时候,Brett Tabke在Webmast

二十八条改善 ASP 性能和外观的技巧 1-6(From Ms China)——七月份的文章,好像还没人转过

技巧|性能 二十八条改善 ASP 性能和外观的技巧 Len Cardinal,高级顾问,Microsoft Consulting Services George V. Reilly Microsoft IIS Performance Lead 改编自Nancy Cluts 的文章 开发人员技术工程师 Microsoft Corporation 2000 年 4 月 摘要:本文介绍优化 ASP 应用程序和 VBScript 的技巧. 引言 性能是一个特征.您必须预先设计性能,否则您以后就得重写应用

二十八条改善 ASP 性能和外观的技巧(1-7)

技巧|性能 二十八条改善 ASP 性能和外观的技巧 Len Cardinal,高级顾问,Microsoft Consulting Services George V. Reilly Microsoft IIS Performance Lead 改编自Nancy Cluts 的文章 开发人员技术工程师Microsoft Corporation 2000 年 4 月 摘要:本文介绍优化 ASP 应用程序和 VBScript 的技巧. 目录 技巧 1:将经常使用的数据缓存在 Web 服务器上 技巧 2

[算法系列之二十四]后缀树(Suffix Tree)

之前有篇文章([算法系列之二十]字典树(Trie))我们详细的介绍了字典树.有了这些基础我们就能更好的理解后缀树了. 一 引言 模式匹配问题 给定一个文本text[0-n-1], 和一个模式串 pattern[0-m-1],写一个函数 search(char pattern[], char text[]), 打印出pattern在text中出现的所有位置(n > m). 这个问题已经有两个经典的算法:KMP算法 ,有限自动机,前者是对模式串pattern做预处理,后者是对待查证文本text做预处

Silverlight+WCF 新手实例 象棋 棋手颜色(二十九)

在线演示地址:Silverlight+WCF 新手实例 象棋 在线演示   在上一节Silverlight+WCF 新手实例 象棋 该谁下棋-A下B停(二十八),我们在最后聊天对话中看到,双方棋手用的竟然都是红色,这个...... 这节,我们来让双方使用不同的颜色下棋:   我们通过什么来决定棋手的颜色?其实,Player玩家属性里,不就有一个ColorValue么,有了这个,一切就好办了. 我们回到Chess象棋类里,增加一个属性,玩家颜色,同时,扩展一下构造函数,增加传参:  /// <su

引自天天安全网 ——※ 中华民族传统文化精髓___二十四孝 ※

一下是来自天天安全网的内容,强烈推荐! PS:做人不孝无异于禽兽,请宏扬我中华美德! "孝"是儒家伦理思想的核心,是千百年来中国社会维系家庭关系的道德准则,是中华民族的传统美德,是我中华民族传统文化之精髓.元代郭居敬辑录古代24个孝子的故事,编成<二十四孝>.后来的印本都配上图画,通称<二十四孝图>,成为宣扬孝道的通俗读物. 01 孝感动天舜,传说中的远古帝王,五帝之一,姓姚,名重华,号有虞氏,史称虞舜.相传他的父亲瞽叟及继母.异母弟象,多次想害死他:让舜修补谷

二十余家省级卫视将在大兴设演播中心

本报讯 (记者 祁梦竹 通讯员 李永晖) 大兴区新媒体产业基地星光影视园里,22万平方米建筑面积打造全国最顶级的电视演播间"群落",吸引二十余家省级卫视和众多节目制作公司在大兴扎堆.本月底,国家广电总局颁发的全国首个国家级电视节目制作基地,将在这里挂牌. 目前国内各地方卫视在北京的办事处.国内外传媒机构在北京的总部很多都选址在写字楼里,缺乏专业的节目生产与制作配套环境,使得节目制作的效率大幅下降,而且所需的各项条件,如吸音.隔音.演播室高度.专业设备的更新与升级等条件很难满足. 空白就

Silverlight+WCF 新手实例 象棋 主界面-实时聊天区(二十五)

在线演示地址:Silverlight+WCF 新手实例 象棋 在线演示 演示已更新到此节介绍:Silverlight+WCF 新手实例 象棋 介绍III(二十三)   本节连着Silverlight+WCF 新手实例 象棋 主界面-在线用户区(二十四) 发,主界面就不截图了,这节我们实现"实时聊天区": 这节内容几乎和上节一个样的逻辑 1:新建一个用户控件:就叫:Chat.xaml,用来在线聊天 2: 界面拖一个Border到Index.xaml,现在界面上有三个Border了,第三个