永发信息网

求教C编程高手的问题

答案:2  悬赏:70  手机版
解决时间 2021-05-14 12:24
  • 提问者网友:爱唱彩虹
  • 2021-05-13 17:04

想问这段代码究竟错在哪里?这是我在一本书上弄的源代码,怎么会有这种错误
最佳答案
  • 五星知识达人网友:酒者煙囻
  • 2021-05-13 17:44

#include "stdio.h"
#include "conio.h"
#define N 10


main()
{
    int a[]={0,1,2,3,4,5,6,7,8,0},d;
    int low=0,high=N-1,mid;
    printf("d: ");
    scanf("%d",&d);
    while(low<=high)
    {
    mid=(low+high)/2;
    if (a[mid]==d)
    {
    printf("a[%d]=%d\n",mid,d);
    return;
    }
    if (a[mid]>=d)
    high=mid-1;
    else
    low=mid+1;
    }
    printf("%d wei zhao dap \n",d);
    getch();
}


是第17句中a[mid]=>d错了,C中的大于等于应该是>=。


屏一闪是因为你的14句后面没有让程序停顿一下,在14句后面加一句getch();程序就会在这里停一下。

全部回答
  • 1楼网友:孤独的牧羊人
  • 2021-05-13 18:56

a[mid]=>d应该为a[mid]>=d

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯