测试积点老人 发表于 2021-8-9 11:27:07

代码运行后查找出无效值,求纠错一下


```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<k)
               {
                     left=mid+1;
                     //return(-1);
               }
               else if(p>k)
               {
                     right=mid-1;
                     //return(-1);
               }
               else if(p=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);   
      }
      fflush(stdin);
          //int sz=sizeof(p)/sizeof(p);
      printf("请输入要查找的元素值.\n");
          scanf("%d",&k);
            int sz=sizeof(p)/sizeof(p);
          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;
      }

bellas 发表于 2021-8-10 09:23:13

打个断点,看看输出

海海豚 发表于 2021-8-10 11:00:18

有报错吗

qqq911 发表于 2021-8-10 11:50:06

看下报错信息

litingting0214 发表于 2021-8-10 13:38:27

先执行一下,看看有没有错呢

jingzizx 发表于 2021-8-10 14:38:22

日志
页: [1]
查看完整版本: 代码运行后查找出无效值,求纠错一下