栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

06—函数

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

06—函数

写在这里的初衷,一是备忘,二是希望得到高人指点,三是希望能遇到志同道合的朋友。

目录

函数

1.调用有参函数2.调用无参函数3.函数的嵌套4.函数的递归


函数 1.调用有参函数

例1

//常规思路
#include
int main()
{
	float a[4];
	int i;
	float t,u,v;
	for (i = 0; i <= 3; i++)
	{
		printf("请输入第%d个数字:", i + 1);
			scanf_s("%f", &a[i]);
	}
	if (a[0] < a[1])
		t = a[1];
	else
		t = a[0];
	if (a[2] < a[3])
		u = a[3];
	else
		u = a[2];
	if (t < u)
		v = u;
	else
		v= t;
	printf("前两个数中的最大数为%fn",t);
	printf("后两个数中的最大数为%fn",u);
	printf("四个数中的最大数为%fn", v);
	return 0;
}
//调用有参函数max()
#include
int main()
{
	float max(float x, float y);  //开头:声明max函数
	float a[4];
	int i;
	float t, u, v;
	for (i = 0; i <= 3; i++)
	{
		printf("请输入第%d个数字:", i + 1);
		scanf_s("%f", &a[i]);
	}
	t = max(a[0], a[1]);
	u = max(a[2], a[3]);
	v = max(t, u);
	printf("前两个数中的最大数为%fn", t);
	printf("后两个数中的最大数为%fn", u);
	printf("四个数中的最大数为%fn", v);
	return 0;
}
float max(float x, float y)  //结尾定义max函数
{
	float zuidashu;
	if (x > y)
		zuidashu = x;
	else
		zuidashu = y;
	return(zuidashu);    //切记不能忘记return语句
}
// 结尾声明函数

//第一种写法:
float max(float x, float y)  //结尾定义max函数
{
	float zuidashu;
	if (x > y)
		zuidashu = x;
	else
		zuidashu = y;
	return(zuidashu);    //切记不能忘记return语句
}

//第二种写法:
float max(float x, float y) 
{
	if (x > y)
		return(x);
	else
		return(y);
}

//第三种写法:
float max(float x, float y)
{
	return(x > y ? x : y);
}

练习

#include
int main()
{
	float aver(float a[], int n);  //开头:声明aver函数
	float zu1[5],zu2[10];
	int i;
	printf("请输入第1组的学生成绩:n");
	for (i = 0; i <= 4; i++)
		scanf_s("%f", &zu1[i]);
	printf("请输入第2组的学生成绩:n");
	for (i = 0; i <= 9; i++)
		scanf_s("%f", &zu2[i]);
	printf("第1组的平均分是%fn", aver(zu1,5));
	printf("第2组的平均分是%fn", aver(zu2, 10));
	return 0;
}
float aver(float a[], int n)   //结尾定义aver函数
{
	float sum = a[0], pingjunshu;
	int i;
	for (i = 1; i < n; i++)
		sum = sum + a[i];
	pingjunshu = sum / n;
	return(pingjunshu);
}
2.调用无参函数

例2

#include
int main()
{
	printf("1234567n");
	printf("猴博士是大帅逼n");
	printf("7654321n");
	printf("猴博士是大帅逼n");
	printf("7654321n");
	printf("猴博士是大帅逼n");
	return 0;
}
//调用无参函数
#include
int main()
{
	void a();
	void b();
	void c();
	a();
	b();
	c();
	b();
	c();
	b();
	return 0;
}
void a()
{
	printf("1234567n");
}
void b()
{
	printf("猴博士是大帅逼n");
}
void c()
{
	printf("7654321n");
}

练习

#include
int main()
{
	void paixu(int a[], int n);
	int a[10],i;
	printf("请输入10个整数:n");
	for (i = 0; i <= 9; i++)
		scanf_s("%d", &a[i]);
	paixu(a, 10);
	printf("排序后的整数依次是:n");
	for (i = 0; i <=10; i++)  //一共10个整数从小到大排序,所以这应该为 i<10;或者 i<=9;
		printf("%dt", a[i]);
	printf("n");
	return 0;
}
void paixu(int a[], int n)    //函数比大小
{
	int i, j, t;
	for (i = 0; i < n - 1; i++)
		for (j = i+1; j < n; j++)
			if (a[i] > a[j])
			{
				t = a[i];
				a[i] = a[j];
				a[j] = t;
			}
}

修改后的程序:

#include
int main()
{
	void paixu(int a[], int n);
	int a[10],i;
	printf("请输入10个整数:n");
	for (i = 0; i <= 9; i++)
		scanf_s("%d", &a[i]);
	paixu(a, 10);
	printf("排序后的整数依次是:n");
	for (i = 0; i <= 9; i++)     //或 for (i = 0; i <10;i++)
		printf("%dt", a[i]);
	printf("n");
	return 0;
}
void paixu(int a[], int n)    //函数比大小
{
	int i, j, t;
	for (i = 0; i < n - 1; i++)
		for (j = i+1; j < n; j++)
			if (a[i] > a[j])
			{
				t = a[i];
				a[i] = a[j];
				a[j] = t;
			}
}
3.函数的嵌套

例3

#include
int main()
{
	int max4(int a, int b, int c,int d);
	int a,b,c,d,zuidashu;
	printf("请输入4个整数:n");
    scanf_s("%d %d %d %d", &a,&b,&c,&d);
	zuidashu=max4(a,b,c,d);
	printf("最大数为%dn",zuidashu);
	return 0;
}
int max4(int a, int b, int c, int d)  //函数的嵌套
{
	int max2(int a, int b);
	return(max2(max2(max2(a, b), c), d));
}
int max2(int a, int b)  //基本函数
{
	return(a > b ? a : b);
}
4.函数的递归

例4

#include
int main()
{
	int age(int n);
	printf("第5个学生的年龄%dn",age(5));
	return 0;
}
int age(int n)
{
	int nianling;
	if (n == 1)
		nianling = 10;
	else
		nianling = age(n - 1) + 2;
	return(nianling);
}

练习

#include
int main()
{
	int jiecheng(int n);   //声明 n!函数
	int n;
	printf("请输入一个整数:");
	scanf_s("%d", &n);
	printf("%d!=%dn",n,jiecheng(n));
	return 0;
}
int jiecheng(int n)       //解释 n!函数
{
	int jieguo;
	if (n==0 ||n==1)
		jieguo = 1;
	else
		jieguo= jiecheng(n - 1) *n;       //n!=(n-1)!*n;
	return(jieguo);
}
运用函数递归的时候,要注意:
1.写清楚初始状态的值:n==0,n==1;
2.相邻之间的关系是什么:n!=(n-1)!*n;

n!中的n不能为负数
修改后的程序:

#include
int main()
{
	int jiecheng(int n);
	int n;
	printf("请输入一个整数:");
	scanf_s("%d", &n);
	printf("%d!=%dn",n,jiecheng(n));
	return 0;
}
int jiecheng(int n)
{
	int jieguo;
	if(n<0)                     //添加判断n<0,不符合条件
		printf("n<0,数字输入得不对!");
	else if (n==0 ||n==1)
		jieguo = 1;
	else
		jieguo= jiecheng(n - 1) *n;
	return(jieguo);
}

以上是自己通过学习整理所得,大家有相关问题,可以留言,一起交流学习!

转载或者引用本文内容请注明来源及原作者

参考
《C语言》4小时不挂科【猴博士爱讲课】——第4~7课

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/722631.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号