C语言中函数的分类
1.库函数
常用的库函数
(1)IO函数
(2)字符串操作函数
(3)字符操作函数
(4)内存操作函数
(5)时间/日期函数
(6)数学函数
(7)其他库函数
2.自定义函数
使用函数求两个数的最大值
get_max(int x, int y)
{
int z = (x > y ? x : y);
return z;
}
int main()
{
int a = 0;
int b = 0;
//输入
scanf("%d %d", &a, &b);
//int m = a > b ? a : b;
int m = get_max(a, b);
//输出
printf("较大值是:%d\n", m);
return 0;
}
写一个函数可以交换两个整型变量的内容
void Swap(int* x, int* y)
{
int tmp = *x;
*x = *y;
*y = tmp;
}
int main()
{
int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
//实际参数-实参
//当实参传递给形参的时候
//形参是实参的一份临时拷贝
//所以对形参的改变不会影响实参
printf("交换前:a=%d,b=%d\n", a, b);
Swap(&a, &b);
printf("交换后:a=%d,b=%d\n", a, b);
return 0;
}
函数的参数
1.实际参数
2.形式参数
写一个函数判断一个数是不是素数
#include <math.h>
int is_prime(int n)
{
int j = 0;
for (j = 2; j <= sqrt(n); j++)
{
if (n % j == 0)
return 0;
}
return 1;
}
int main()
{
int i = 0;
int count = 0;
for (i = 100; i <= 200; i++)
{
//判断i是否为素数
if (is_prime(i) == 1)
{
printf("%d ", i);
count++;
}
}
printf("\ncount=%d\n", count);
return 0;
}
写一个函数判断一年是不是闰年
//闰年返回1
//非闰年返回0
int is_leap_year(int y)
{
if ((y % 4 == 0) && (y % 100 != 0) || (y % 400 == 0))
return 1;
else
return 0;
}
int main()
{
int y = 0;
int count = 0;
for (y = 1000; y <= 2000; y++)
{
if (is_leap_year(y) == 1)
{
printf("%d ", y);
count++;
}
}
printf("\n%d", count);
return 0;
}
写一个函数,实现一个整型有序数组的二分查找
int binary_search(int arr[], int k, int sz)
{
int left = 0;
int right = sz - 1;
while (left <= right)
{
int mid = (left + right) / 2;
//int mid = left + (right - left) / 2;
if (arr[mid] < k)
{
left = mid + 1;
}
else if (arr[mid] > k)
{
right = mid - 1;
}
else
{
return mid;
}
}
return -1;
}
int main()
{
int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
int k = 7;
int sz = sizeof(arr) / sizeof(arr[0]);
//二分查找
//找到了,返回下标
//找不到,返回-1
int ret = binary_search(arr, k, sz);
if (ret == -1)
printf("找不到\n");
else
printf("找到了,下标是:%d\n", ret);
return 0;
}