2021-09-25

C语言代码之函数相关例子

注:博主是个小白,也是第一次写博客,希望通过这个方式来激励自己,以及寻找不足。如果有什么不对的地方,希望大家多多指正。
下面还有重要的知识点哟,会的就当复习复习吧!


1、求两个数的最大值

/*求两个数的最大值*/
#include<stdio.h>
float max(float a,float b){/*被调用函数max的定义*/
	float m;/*声明部分*/
	if(a>b) 
		m=a;
	else {
		m=b;}
	return m;/*返回两个数的最大值*/
}
int main(){
	float x,y,z;
	printf("请输入两个数:");
	scanf("%f%f",&x,&y);
	z=max(x,y);/*函数调用,求两个数的最大值*/
	printf("最大值为:%.2f\n",z);/*输出两个数的最大值*/
}

2、定义两个函数,计算阶乘的和

/*定义两个函数,计算1!+2!+3!...+(n-1)!+n!的和*/
#include<stdio.h>
long factorial(int n);/*函数的声明,也可以写成long factorial(int)*/
long sum(long n);/*函数的声明,也可以写成long sum(long)*/
int main(){
	printf("1!+2!+3!+...+9!+10!=%ld\n",sum(10));
	return 0;
}
long factorial(int n){/*函数定义,求阶乘*/
	int i;
	long result=1;
	for(i=1;i<=n;i++){
		result*=i;
	}
	return result;
}
long sum(long n){/*函数定义,求累加的和*/
	int i;
	long result=0;
	for(i=1;i<=n;i++){
		result+=factorial(i);
	}
	return result;
}

3、交换两个变量的值

/*交换两个变量的值*/
#include<stdio.h>
void change(int a,int b){/*被调用函数change的定义*/
	int t;
	printf("a=%d b=%d\n",a,b);/*输出变量值*/
	t=a;/*交换变量的值*/
	a=b;
	b=t;
	printf("a=%d b=%d\n",a,b);/*输出变量的值*/
}
void main(){
	int x,y;
	printf("请输入两个函数:");
	scanf("%d%d",&x,&y);
	printf("x=%d y=%d\n",x,y);/*函数调用前,输出变量的值*/
	change(x,y);/*发生函数调用*/
	printf("x=%d y=%d\n",x,y);/*函数调用后,输出变量的值*/
}
/*交换两个变量的值*/
#include<stdio.h>
void exchange(int *a,int *b){
	int t;
	printf("a=%d b=%d\n",*a,*b);/*输出形参值*/
	t=*a;/*交换形参值*/
	*a=*b;
	*b=t;
	printf("a=%d b=%d\n",*a,*b);/*输出交换后的形参值*/
}
void main(){
	int x,y;
	printf("请输入两个数:");
	scanf("%d%d",&x,&y);
	printf("x=%d y=%d\n",x,y);
	exchange(&x,&y);/*发生函数调用*/
	printf("x=%d y=%d\n",x,y);/*函数调用后,输出变量值*/

}

4、计算s=n2!+m2!

/*计算s=n^2!+m^2!*/
#include<stdio.h>
long f1(int a){/*被调用函数f1的定义*/
	int k;
	long r;
	long f2(int);{/*被调用函数f2的声明*/
	k=a*a;/*计算a的平方值*/
	r=f2(k);/*调用函数f2,计算a的平方的阶乘*/
	return r;/*返回函数值*/
}
long f2(int b){/*被调用函数f2的定义*/
	long c=1;
	int i;
	for(i=1;i<=b;i++)/*计算b的阶乘*/
		c=c*i;
	return c;/*返回函数值*/
}
void main(){
	int n,m;
	long s;
	printf("请输入两个整数:");
	scanf("%d%d",&n,&m);
		s=f1(n)+f1(m);
	printf("s=%ld\n",s);
}

5、用递归算法计算n!

/*用递归算法计算n!*/
#include<stdio.h>
int fac(int n){/*函数fac的定义*/
	if((n==1)||(n==0))
		return 1;/*n的值为0或1时的返回值*/
	else 
		return n*fac(n-1);/*n的值大于1时的返回值*/
}
void main(){
	int m,y;
	printf("请输入一个整数:");
	scanf("%d",&m);
	if(m<0)
		printf("输入错入!\n");
	else
		y=fac(m);/*调用函数fac*/
	printf("%d!=%d\n",m,y);
}

6、局部变量代码示例

/*局部变量代码示例*/
#include<stdio.h>
void main(){
	int i,j,k;/*定义局部变量ijk*/
	i=6;j=5;
	k=i+j;/*计算K的值,结果为11*/
	{/*复合语句*/
		int k=20;/*局部变量k*/
		printf("%d\n",k);
	}
	printf("%d,%d,%d\n",i,j,k);
}

7、全局变量示例

/*全局变量示例*/
#include<stdio.h>
int a,b;/*定义全局变量ab*/
int f1(){
	a=a+10;
	b=b+15;
	return a+b;
}
int f2(){
	int a=1;/*定义局部变量a*/
	a=a+5;
	b=b+8;
	return a+b;
}
void main(){
	int x,y;/*定义局部变量xy*/
	x=f1();
	printf("x=%d a=%d b=%d\n",x,a,b);
	y=f2();
	printf("y=%d a=%d b=%d\n",a,b);
}

8、自动变量示例

/*自动变量示例*/
#include<stdio.h>
void main(){
	auto int a,s,p;/*定义asp为自动整形变量*/
	s=10;p=10;
	printf("请输入一个整数:");
	scanf("%d",&a);
	if(a>10){
		int s,p;
		s=a*a;
		p=a+a;
		printf("s=%d p=%d\n",s,p);/*输出变量值*/
	}
	printf("s=%d p=%d\n",s,p);/*输出变量值*/
}

9、静态局部变量应用示例

/*静态局部变量应用示例*/
#include<stdio.h>
void f(){
	static int j=0;/*定义静态局部变量k*/
	int i=0;/*定义自动变量i*/
	i=i+1;
	j=j+1;
	printf("%d %d\n",i,j);
}
void main(){
	int i;/*定义自动变量i*/
	for(i=1;i<=4;i++)
		f();/*函数调用*/
}

10、寄存器变量示例

/*寄存器变量示例*/
#include<stdio.h>
void main(){
	register int i,s=0;
	for(i=1;i<=200;i++)
		s=s+i;
	printf("s=%d\n",s);
}

11、外部变量应用示例

/*外部变量应用示例*/
#include<stdio.h>
int fun(int x,int y){
	extern int h;/*外部变量声明*/
	int v;/*定义局部变量v*/
	v=x*y*h;
	return v;
}
int x=3,y=4,h=5;/*定义外部变量xyh*/
void main(){
	int x=5;/*定义局部变量x*/
	printf("v=%d",fun(x,y));
}

重要知识点回顾
1)声明部分是对函数体内部所用到的变量的声明
2)主函数main()只能是主调函数,不予许其他函数调用主函数
3)函数的调用方式有三种:(1) 作为表达式的一部分
(2)构成函数调用语句
(3)作为另一函数的实参
4)形参只有函数被调用时才会临时分配存储单元,调用结束时内存单元被释放,故形参只有函数调用是有效
5)形参只能是变量,实参可以是常量、变量、表达式
6)函数不能嵌套定义,但可以嵌套调用

好啦,因为时间关系,今天就写这么多,还有很多知识点没写,下次单独总结,希望大家多多支持,也希望大家多多提建议
嘿嘿~~

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
使用python中的pymsql完成如下:表结构与数据创建 1. 建立 `users` 表和 `orders` 表。 `users` 表有用户ID、用户名、年龄字段,(id,name,age) `orders` 表有订单ID、订单日期、订单金额,用户id字段。(id,order_date,amount,user_id) 2 两表的id作为主键,`orders` 表用户id为users的外键 3 插入数据 `users` (1, '张三', 18), (2, '李四', 20), (3, '王五', 22), (4, '赵六', 25), (5, '钱七', 28); `orders` (1, '2021-09-01', 500, 1), (2, '2021-09-02', 1000, 2), (3, '2021-09-03', 600, 3), (4, '2021-09-04', 800, 4), (5, '2021-09-05', 1500, 5), (6, '2021-09-06', 1200, 3), (7, '2021-09-07', 2000, 1), (8, '2021-09-08', 300, 2), (9, '2021-09-09', 700, 5), (10, '2021-09-10', 900, 4); 查询语句 1. 查询订单总金额 2. 查询所有用户的平均年龄,并将结果四舍五入保留两位小数。 3. 查询订单总数最多的用户的姓名和订单总数。 4. 查询所有不重复的年龄。 5. 查询订单日期在2021年9月1日至9月4日之间的订单总金额。 6. 查询年龄不大于25岁的用户的订单数量,并按照降序排序。 7. 查询订单总金额排名前3的用户的姓名和订单总金额。 8. 查询订单总金额最大的用户的姓名和订单总金额。 9. 查询订单总金额最小的用户的姓名和订单总金额。 10. 查询所有名字中含有“李”的用户,按照名字升序排序。 11. 查询所有年龄大于20岁的用户,按照年龄降序排序,并只显示前5条记录。 12. 查询每个用户的订单数量和订单总金额,并按照总金额降序排序。
最新发布
06-03

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

橘猫...

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值