自己编写出来的函数在主函数中的使用方法

1.函数声明

1.1函数声明格式(函数原型后面加上分号)

        int max(int x,int y);        //完整清晰,参数意义明确

        int max(int,int);             //精炼,参数意义不明确

1.2函数声明位置

1.2.1 在文件开头声明,即本文件都可以使用

1.2.2 在某个函数内部声明,只能在具有声明的函数内使用

1.2.3 如果主调函数在被调函数的后面,则可以省略声明

例:文件开头声明(主函数明确,如果子函数过多,主函数不太好找,因此,子函数放后面更好一下,这样只需声明就行)

#include <stdio.h>
/*五个人,第五个比第四大两岁,第四个比第三个大两岁...最后一个学生说他10岁,请问第五个学生多少岁?*/ 

int nian(int s);

int main()
{
	int a,b;
	printf("已知第一个学生10岁,下一个比上一个大两岁\n请输入您要求第几个人的岁数:");
	scanf("%d",&a);
	b=nian(a);
	printf("第%d个人的岁数为%d",a,b); 
	return 0;
 } 
 
 int nian(int s)
 {
 	int ret;
 	if(s==1)
 		ret=10;
 	else
 		ret=nian(s-1)+2;
	return ret; 
 }

2.函数嵌套调用

C语言的函数之间是相互平行的、独立的,不允许函数内部定义另一个函数;但可以函数内部调用一个函数,调用函数又调用另一个函数,也就是嵌套调用。

例:输入4个整数,找出其中最大的数,用函数的嵌套调用处理

#include <stdio.h>
/*这两个函数在主调函数前,可省略声明*/
int mm(int num_1,int num_2)
{
	//int ret;
	//ret=num_1>num_2 ?num_1:num_2;
	return num_1>num_2 ?num_1:num_2;
}

int numax(int num_1,int num_2,int num_3,int num_4)
{
	int ret;
	ret=mm(num_1,num_2);
	ret=mm(ret,num_3);
	ret=mm(ret,num_4);
	
	return ret;
}

int main()
{
	int num_1,num_2,num_3,num_4,max;
	printf("比较四个数,找出最大值(输入时中间用空格隔开):\n");
	scanf("%d %d %d %d",&num_1,&num_2,&num_3,&num_4);
	max=numax(num_1,num_2,num_3,num_4);
	
	printf("这几个数中的最大值为:%d",max);
	return 0;
}

3.函数递归调用

调用一个函数的过程中又出现直接或间接的调用该函数本身,称为递归调用。

例:用递归方法求n!

#include <stdio.h>
int fun(int num);  //声明函数

int main()
{
	int a,b;
	printf("求该数的阶乘\n请输入这个数:");
	scanf("%d",&a);
	b=fun(a);
	printf("这个数的阶乘为:%d",b); 
	return 0;
}

int fun(int num)
{
	int ret;
	if(num==1)
		ret=1;
	else
		ret=fun(num-1)*num;
	return ret;
}

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值