本帖最后由 mr.late 于 2015-11-26 20:35 编辑
#include<stdio.h>
int searchNum(int arr[],int len,int key){
int low=0,high=len-1,mid=(low+high)/2;
while(arr[mid]!=key){
if(key>arr[mid]){
low=mid+1;
mid=(low+high)/2;
}else if(key<arr[mid]){
high=mid-1;
mid=(low+high)/2;
}
if(low>high){
return low;
}
}
return mid;
}
int main(){
int key,num;
printf("这是一个长度为10的一维数组,元素类型是int型\n");
int arrSearchNum[10];
printf("请按从小到大顺序定义数组的元素\n");
for(int i=0;i<10;i++){
printf("请定义第%d个元素的大小\n",i+1);
scanf("%d",&arrSearchNum);
}
printf("请输入一个数,查找此数在本数组中本应所在的位置\n");
scanf("%d",&key);
num=searchNum(arrSearchNum,10,key);
printf("%d应插入在数组中的第%d位\n",key,num+1);
return 0;
}
|
|