C语言-09-函数1

函数

函数的定义与调用

//C语言函数先定义后使用
//指定函数名字,函数返回值类型,函数实现的功能以及参数的个数与类型。
#include <stdio.h>
void Func1();
void Func2();
void Func3();
void Func4();
void Func5();
void Func6();

void Func1()
{
	printf("北京市\n");
}
void Func2()
{
	printf("上海市\n");
}
void Func3()
{
	printf("广州市\n");
}
void Func4()
{
	printf("深圳市\n");
	Func6();
	Func5();

}
void Func5()
{
	printf("武汉市\n");
}
void Func6()
{
	printf("长沙市\n");
}

int main()
{
	printf("main函数开始执行.\n");
	Func1();
	Func2();
	Func3();
	Func4();
	printf("main函数结束.\n\n");


	return 0;
}
//定义无参函数
//类型名 函数名()
//{
//   函数体
//}
//定义有参函数
//类型名 函数名(形式参数表列)
//{
//   函数体
//}
//

#include <stdio.h>
void FuncTest1()
{
	printf("欢迎来到大学.\n\n");
}
void FuncTestSum(int x, int y)
{
	printf("sum=%d\n", x + y);
}
int main()
{
	//调用无参函数
	FuncTest1();
	//调用有参函数
	FuncTestSum(45, 87);
	return 0;
 }
//调用有参函数这里,注意与上面区分
#include <stdio.h>

int FuncTestSum(int x, int y)
{
	return (x + y);

}
int main()
{
	//调用有参函数
	int sum=FuncTestSum(45, 87);
	printf("两数之和为:%d\n\n", sum);

	return 0;
}
定义空函数:先占一个位置,后面补充
// 类型名 函数名()
//{
//   
//}

函数的嵌套调用

//函数嵌套调用
//函数定义是互相平行,独立的,函数不能嵌套定义,但可以嵌套调用,既是调用一个函数的同时又可以调用另外一个函数
/*案例
题目:要求输入4个整数,找出其中最大的,要求使用函数的嵌套调用来实现
思路:
1.main调用主函数,找4个数中最大数
2.maxx调用maxy函数,找两个数中的最大数
3.maxx多次调用maxy函数,找到4个数中的最大数,最后返回主函数main()
*/
#include <stdio.h>
int maxx(int a, int b, int c, int d);
int maxy(int x, int y);

int main()
{
	int a, b, c, d, max;
	printf("\n请输入4个整数:\n");
	scanf_s("%d%d%d%d", &a, &b, &c, &d);
	max = maxx(a, b, c, d);

	printf("最大数max=%d\n\n", max);

	return 0;
 }
int maxx(int a, int b, int c, int d)
{
	int m;
	m = maxy(a, b);//得到a,b的最大数
	m = maxy(m, c);
	m = maxy(m, d);

	return m;
}
int maxy(int x, int y)
{
	return (x > y ? x : y);
}

函数的递归调用

//函数的递归调用:
//在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归调用。也是C语言的特点之一
//注意:应使用if语句控制结束调用
/*
题目:有5个小学生坐在一起。
问第五个学生年龄,说比第四个大2岁;
问第四个学生年龄,说比第三个大2岁;
问第三个学生年龄,说比第二个大2岁;
问第二个学生年龄,说比第一个大2岁;
问第一个学生年龄,说10岁;
请问第5个学生年龄?
*/
#include <stdio.h>

int ageFunc(int n)
{
	int age = 0;
	if (n == 1)
		age = 10;
	else
		age = ageFunc(n - 1) + 2;
	return age;
}
int main()
{
	printf("\n第5个学生的年龄是:%d\n\n",ageFunc(5));

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值