C语言第53课:自定义函数

53课自定义函数

·函数定义
	return_type function_name([datatype1 arg1],[datatype arg2],[...])
	{
		//函数体
	}
	

·函数三要素
	·返回值类型
	·函数名
	·参数列表

	
·自定义函数的完整写法

	#include <stdio.h>
	//函数原型
	int sum(int,int);
	int main()
	{
		...
	}
	//函数定义
	int sum(int num1, int num2)
	{
		//函数实现的代码
	} 


	
		最重要的是函数的三要素
		不要先想如何去完成什么功能。
		返回值+函数名+参数
		九层之台始于累土!!!函数就是不断地复用,越往后越熟练。

一、典型自定义函数

			//代码******************************
			#include <stdio.h>
			#include <stdlib.h>
			#include <math.h>
			
			//函数原型
			void calcCircle();  //计算圆面积
			void calcRectangle();   //计算矩形面积
			/*
				计算圆的面积(函数实现)
			*/
			
			void calcCircle()
			{
				double radius;
				double s;
				printf("请输入圆的半径:");
				scanf("%lf",&radius);
				s = 3.14 * pow(radius, 2);
				printf("半径为%.2lf的圆面积为:%.2lf\n", radius, s);
			}
			
			void calcRectangle()
			{
				double width;
				double height;
				double s;
				printf("请输入矩形的长:");
				scanf("%lf",&width);
				printf("请输入矩形的宽:");
				scanf("%lf",&height);
				s = width*height;
				printf("长为%.2lf,宽为%.2lf的矩形面积为:%.2lf\n", width, height,s);
			}
			
			
			int main()
			{
				/*
				三种图形的面积计算公式如下:
				圆:s = PI*r*r;
				矩形: s = width * height;
				三角型: s = width * height /2;
				使用函数分别实现三种图形的面积计算,打印计算结果
				*/
				//书写函数的步骤:完成函数的三要素
				//误区:不要一开始就去考虑如何完成某个功能
				calcCircle();   //调用计算圆面积的函数
				calcRectangle();    //调用计算矩形面积的函数
				//需要返回值么?
				//函数名是什么?
				//需要给这个函数参数么?
			}
			//代码******************************		




二、有返回值的函数
·计算1-100偶数和

			//代码********************************************************	
			#include <stdio.h>
			#include <stdlib.h>
			#include <math.h>
			
			//函数原型
			int calcSum(); //求1-100之间的偶数和,返回值为int型(不是void了)
			
			//函数定义
			int calcSum()
			{
				//1-100之间的偶数和
				int sum = 0;
				int i = 1;
				for(i = 1; i <= 100; i++)
				{
					if(i % 2 ==0)   //判断是否为偶数
						sum += i;
				}
				//将计算好的结果返回
				return sum;
			}
			
			//调用
			//如果函数有返回值,调用时,记得使用对应类型的变量来接受!
			
			int main()
			{
				int sum = calcSum();
				printf("1-100之间的偶数和为:%d\n",sum);
			}
			//代码********************************************************	
			
三、有返回值的函数

			//代码********************************************************	
			#include <stdio.h>
			#include <stdlib.h>
			#include <math.h>
			
			/*
			书写函数实现数组元素的查找,要求返回找到的元素下标
			*/
			
			
			//1、返回值:元素下表
			//2、函数名
			//3、函数参数
			
			//函数原型
			//函数定义
			//调用函数
			
			int search();
			
			
			
			int search()
			{
				int nums[] = {34,56,7,3,2};
				int i ;
				//要查找的数字,所查找数字的下标,没找到index为-1
				int searchNum, searchIndex = -1;
				printf("请输入要查找的整型数字:");
				scanf("%d", &searchNum);
				for(i = 0; i < 5; i++)
				{
					if(searchNum == nums[i]) //*(nums + i )
					{
						searchIndex = i; //记录下查找到的下标
						break;
					}
				}
				return searchIndex;
			}
			
			int main()
			{
				int a;
				a = search();
				printf("找到的元素的下标是:%d\n",a);
				return 0;
			}
			


四、总结:

void function();	//函数原型
void function()		//函数定义
function();			//调用函数

先思考:
		返回值
		函数名
		函数参数
		



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值