TA的每日心情 | 无聊 昨天 09:47 |
---|
签到天数: 528 天 连续签到: 1 天 [LV.9]测试副司令
|
1测试积点
-
- ```c
- #include<stdio.h>
- #include<malloc.h>
- int binary_search(int p[],int k,int sz)
- {
- int left=0;
- int right=sz-1;
- while(left<=right)
- {
- int mid=(left+right)/2;
- if(p[mid]<k)
- {
- left=mid+1;
- //return(-1);
- }
- else if(p[mid]>k)
- {
- right=mid-1;
- //return(-1);
- }
- else if(p[mid]=k)
- {
- return(mid);
- }
- }
- return(-1);
- }
-
-
- int main(void)
- {
- int len,i,k;
- int *p;
- while(1){
- printf("请输入你要存放的元素个数。\n");
- scanf("%d",&len);
- p=(int*)malloc(sizeof(int)*len);
- printf("注意:数组为有序数组.\n");
- printf("请输入你要存储的元素值。\n");
- for(i=0;i<len;++i)
- {
- scanf(" %d",&p[i]);
- }
- fflush(stdin);
- //int sz=sizeof(p)/sizeof(p[0]);
- printf("请输入要查找的元素值.\n");
- scanf("%d",&k);
- int sz=sizeof(p)/sizeof(p[0]);
- int binary_search(int p[],int k,int sz);
- int ret=binary_search(p,k,sz);
- if(ret==-1)
- {
- printf("找不到指定数字\n");
- }
- else
- {
- printf("找到了,下标是 %d\n",ret);
- }
- }
- return 0;
- }
复制代码
|
|