求问各位大神下图是什么原因导致的?
#include <stdio.h>int main()
{
int low,high,mid,n;
int a={-12,0,6,16,23,56,80,100,110,115};
low=0;
high=9;
printf("请输入一个数:");
scanf("%d",&n);
while (low <= high)
{
mid=(low+high)/2;
if(a==n)
{
printf("%d",mid);
}
else if(n < a)
{
high=mid-1;
}
else
{
low=mid+1;
}
}
return 0;
}
编译没有错误,但是运行的时候就出现下图这种情况:如图
求问这是怎么回事?谢谢各位大神了,新手才开始学习,很多不懂的地方,感激不尽!
if (a == n)
{
printf("%d", mid);
break;
}
这个if分支加上break; 没有终止程序,进入了死循环 #include <stdio.h>
int main()
{
int low,high,mid,n;
int a={-12,0,6,16,23,56,80,100,110,115};
low=0;
high=9;
printf("请输入一个数:");
scanf("%d",&n);
while (low <= high)
{
mid=(low+high)/2;
if(a==n)
{
printf("%d",mid);break;
}
else if(n < a)
{
high=mid-1;
}
else
{
low=mid+1;
}
}
return 0;
}加一个break 哇咔咔 这个能做成程序 运行到别人电脑上去么 这个好{:10_256:} 仰望天上的光 发表于 2016-9-18 23:14
这个if分支加上break;
感谢!!!试了一下 可以了! xiaoshuai666 发表于 2016-9-19 18:13
#include
int main()
{
嗯嗯 谢谢可以了! 仰望天上的光 发表于 2016-9-18 23:14
这个if分支加上break;
{:10_277:}
页:
[1]