#include <stdio.h>
#include <stdlib.h>
int BinarySearch(int arr[],int n,int key)
{
int low,hight,middle;
low = 0;
hight = n - 1;
while(hight >= low){
middle = (low + hight) / 2;
if(key == arr[middle]){
return (middle + 1);
}
if(key > arr[middle]){
low = middle + 1;
}
if(key < arr[middle]){
hight = middle - 1;
}
}
return -1;
}
int main()
{
int n,i,key,l,num;
printf("请输入数据的个数:");
scanf("%d",&n);
printf("\n");
int arr[n];
printf("请按从小到大的顺序输入您的数据(空格隔开):");
for(i = 0;i < n;i ++){
scanf("%d",&arr[i]);
}
printf("\n");
while(1){
printf("请在下面输入您想要的操作\n\n");
printf("1.查数!\n\n");
printf("2.退出!\n\n");
printf("请输入:");
scanf("%d",&num);
printf("\n");
switch(num){
case 1:
{
printf("请输入您想查找的数:");
scanf("%d",&key);
printf("\n");
l = BinarySearch(arr,n,key);
if(-1 == l){
printf("没找到哦!");
printf("\n\n");
}else{
printf("%d的值在第%d位置上!",key,l);
printf("\n\n");
}
break;
}
case 2:
{
return;
}
}
}
}
比较简单,小伙伴有什么不懂可以在下边留言或私信我,
对您有帮助点个赞再走吧