目录
1.自定义函数
//交换两个数
#include <stdio.h>
void swap(int n1, int n2)
{
int temp = 0;
temp = n1;
n1 = n2;
n2 = temp;
}
int main()
{
int a = 3, b = 9;
swap(a, b);
printf("%d, %d", a, b);
return 0;
}
//上面这段代码不能实现交换,实参传给形参(传值调用),其实形参是实参的一份临时拷贝,改变形参并
//不能改变实参。使用以下方法(传址调用):
#include <stdio.h>
void swap(int* n1, int* n2)
{
int temp = 0;
temp = *n1;
*n1 = *n2;
*n2 = temp;
}
int main()
{
int a = 3, b = 9;
swap(&a, &b);
printf("%d, %d", a, b);
return 0;
}
2.小练习
判断一个数是不是素数
//判断一个数是不是素数
#include <stdio.h>
int is_prime_num(int n)
{
int i = 0;
for (i = 2; i < n; i++)
{
if (n % i == 0)
return 0;
}
return 1;
}
int main()
{
int num = 0;
printf("请输入一个整数: ");
scanf("%d", &num);
int ret = is_prime_num(num);
if (1 == ret)
printf("%d是素数\n", num);
else
printf("%d不是素数\n", num);
return 0;
}
整型有序数组的二分查找
//整型有序数组的二分查找
#include <stdio.h>
int binary_search(const int* arr, int n, int sz)
{
int start = 0, end = sz - 1;
while (start <= end)
{
int mid = (start + end) / 2;
if (n < *(arr + mid))
end = mid - 1;
else if (n > *(arr + mid))
start = mid + 1;
else
return mid;
}
return -1;
}
int main()
{
int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int num = 6;
int len = sizeof(arr) / sizeof(arr[0]);
int index = binary_search(arr, num, len);
if (-1 == index)
printf("没找到\n");
else
printf("下标是: %d\n", index);
return 0;
}