函数(c语言)
- 定义函数
- 形参实参
- 二分查找
- 递归
定义函数
定义函数(大小)两种方式
int get_max(int x, int y)
{
if (x > y)
return x;
else if (y > x)
return y;
}
void get_max(int x, int y)
{
if (x > y)printf("max=%d\n", x);
else if (y > x)printf("max=%d\n", y);
}
形参实参
形参实参,要用取地址
void swip(int a, int b)//传值调用
{
int p = 0;
p = x;
x = y;
y = p;
}
void swip(int* pa, int* pb)//传址调用
{
int p = 0;
p = *pa;
*pa = *pb;
*pb = p;
}
二分查找
二分查找,一组有序的数组,有序的下标,左右元素下标:左下标+右下标/2.算出中间元素下标。
然后中间元素mid和key值比大小,如果mid<key,则左元素lift=mid+1,如果mid>key,则right=mid-1.
直到right>lift,跳出循环
while (left <= right)
{
int mid = (lift + right) / 2;//中间元素下标
if (mid < key)left = mid + 1;
else if (mid > key)right = mid - 1;
else { return mid;
}
}
递归
程序调用自身的编程技巧称为递归。把大事化小。
- 存在限制条件,满足时则不进行递归算法
- 每次递归后越来越接近限制条件
ps
print(1234)
print(123) 4
print(12) 3 4
print(1) 2 3 4
void print(int n)
{
if (n > 9)
{
print(n / 10);
}
printf("%d\n", n % 10);
}