C学习6
1、通过自定义函数做二分查找
#include<stdio.h> int binary_search(int arr[], int x, int sz) { int left = 0; int right = sz - 1; while (left <= right) { int mid = (left + right) / 2; if (arr[mid] < x) { left = mid + 1; } else if (arr[mid] > x) { right = mid - 1; } else { return mid; } } return -1; } int main() { int arr1[] = { 1,2,3,4,5,6,7,8,9,10 }; int n; int sz1 = sizeof(arr1) / sizeof(arr1[0]); printf("请输入要查找的数据:"); scanf_s("%d", &n); int ret = binary_search(arr1, n, sz1); if (ret == -1) { printf("找不到"); } else { printf("找到了,下标是:%d\n",ret); } return 0; }
重点在于binary_search函数部分,while条件为<=而不是<,不然会找不到。
2、利用头文件包含来做函数引用
.h头文件里放函数声明
.cpp文件里放函数体
主程序里就可以#include"add.h"了
这样可以精简主程序、灵活调用各个模块,有种模块化的美XD
3、为了避免将来的大工程里、多人共同作业的情况下、重复包含文件(重复拷贝进去)造成的资源占用过高和冗余,在.h头文件里使用如下语句