函数
函数的定义与调用
//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;
}