程序运行输入数字回车没有结果为什么
如图 while循环中没有更新high的值 BngThea 发表于 2018-5-7 18:18while循环中没有更新high的值
额,我刚更新了一下还是这样 本帖最后由 BFSDT 于 2018-5-7 19:18 编辑
else if (n < a){
high = mid -1;
}
之前那个有误,这个应该可以 BFSDT 发表于 2018-5-7 18:51
{:10_266:}我刚看到您的回复可高兴了,可是为啥还是那个样子 爱学习的猫 发表于 2018-5-7 19:15
我刚看到您的回复可高兴了,可是为啥还是那个样子
之前那个写错了,现在修改过的应该能用了,修改相应的地方就可以了 BFSDT 发表于 2018-5-7 19:25
之前那个写错了,现在修改过的应该能用了,修改相应的地方就可以了
十分抱歉,您再看一下呗,我运行了还是那个样子
int main(){
static int a={-12,0,6,16,23,56,80,100,110,115};//static是静态变量
int n,low,mid,high,found;//一个分号算一行
low=0;
high=M-1;
found=0;
printf("Input a number to be searched:\n");
scanf("%d",&n);
while(low<=high){
mid=(low+high)/2;
if(n==a){
found=1;
break;
}
else if (n < a){
high = mid -1;
}
else
high=mid+1;
}
if(found==1){
printf("The index of %d is%d",n,mid);
}else
printf("There is not %d",n);
} else if (n < a){
high = mid -1;
}
else
low=mid+1;
else那里不用改,用你原来那个就好了 楼上正解,但那句 else if ( n < a ) 换成 else if ( n < mid ) BngThea 发表于 2018-5-7 18:18
while循环中没有更新high的值
谢谢
页:
[1]