找数字,用(折半查找法或二分查找法)
注意:基于 有序数组
int main(){int arr[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };int key = 1;int left = 0;int right = sizeof(arr)/sizeof(arr[0])-1;//下标while (left <= right ){int mid =left - (left - right) >> 1;//若用int mid = (left+right)/2,容易溢出if (arr[mid] > key)right = mid - 1;else if (arr[mid]<key)left = mid + 1;else{printf("找到了\n");break;}}if(left>right)//来到这有两种情况,1,break跳出循环,找到了2,没找到{printf("找不到\n");}return 0;}
延伸: 可编写一个猜数字游戏
提示: rand()函数--------产生随机数,放在<stdlib.h>中。
srand 函数--------放在<time.h>中。
如果觉得《C语言 找数字 用(折半查找法或二分查找法)》对你有帮助,请点赞、收藏,并留下你的观点哦!