//关机程序:只要运行电脑就在一分钟内关机
//如果输入“张霞”,就取消关机。
//shutdowm -s -t 60 设置关机;shutdowm -a 取消关机
//C语言:system()执行系统命令
GOTO语句适合多层循环时跳出循环,同时,GOTO语句只能在一个函数范围内跳转,不能跨函数
//自定义函数:函数名、函数类型,函数返回类型 EG:int fun(int a,int b);
用函数求出两个数中的最大值
//用函数交换两个数字的值
方法一:加&可以将函数Swap中的值改变后返回
方法一:用指针,地址来改变其值
指针:a=10,pa=&a;*pa=20;此时a的值为20
//传值调用:实参仅把值传给形参,形参里面值得变化不影响实参的值
传址调用:实参将地址传给形参,形参可以根据地址来对实参的数值进行改动
练习:1.写一个函数可以判断一个数是不是素数
2.写一个函数判断一年是不是闰年
3.写一个函数,实现一个整形有序数组的二分查找
4.写一个函数,每调用一次这个函数,就会将num的值增加1
1.写一个函数可以判断一个数是不是素数
2.写一个函数判断一年是不是闰年
3.写一个函数,实现一个整形有序数组的二分查找
4.写一个函数,每调用一次这个函数,就会将num的值增加1
//函数的嵌套调用和链式访问
printf返回的是打印的字符个数
函数可以嵌套调用但不可以嵌套定义
//函数的声明和定义
函数要先声明后使用换句话说就是函数定义可以放在函数使用之后,但是函数使用之前必须先声明函数。
//递归:函数自己调用自己
接受一个整形值,按照顺序打印它的每一位
EG:输入1234;输出 1 2 3
print(1234); print(123) 4;print(12) 3 4;print(1) 2 3 4
递归注意事项:1、不能一直递归,需要有递归条件,每次递归要接近于递归条件
2.递归层次不能太深
//编写函数不允许创建临死变量,求字符串的长度
//用递归:求n的阶乘1*2*3 ... *n
//求第n个斐波那契数列
方法一:Fib(n-1)+Fib(n-2)=Fib(n)
eg:1 1 2 3 5 8 12 21 34 55 ...
a b c
a b c
. . .
方法二:采用循环实现:c=a+b
方法一:Fib(n-1)+Fib(n-2)=Fib(n)
方法二:采用循环实现:c=a+b
//输出乘法口诀表
//输出乘法口诀表,行由自己指定(使用函数)
//字符串逆序(用非递归实现)
要求:1、函数名reverse_string(char* string)
2、将参数字符串中的字符反向排序,非逆序打印
3、不能使用C函数库中的字符串操作函数
4、EG:char arr[]="abcdef"逆序为:fedcab
字符串逆序(用递归实现)
要求:1、函数名reverse_string(char* string)
2、将参数字符串中的字符反向排序,非逆序打印
3、不能使用C函数库中的字符串操作函数
4、EG:char arr[]="abcdef"逆序为:fedcab
递归思路:1、a取下 2、f放入arr[0] 3、f处放'\0'
4、逆序中间的字符串“bcde\0” 5、'\0'处放入a
//计算一个数的每位之和(用递归实现)
要求:1、函数名DigSum(unsigned int n)
2、返回组成它的数字之和
3、不能使用C函数库中的字符串操作函数
4、EG:Digsum(1729),返回1+7+2+9,即19;输入1729,输出19
//递归用函数实现n的k次方
EG:二的三次方等于八
思路:1、n*Pow(n,k-1) 2、1.0/Pow(n,-k)