函数调用疑惑intbinarysearch(intt){intl,u,ml0u6while(lu){m(l+u)/2if(x[m]t)//这里说x没有定
函数调用疑惑
int binarysearch(int t)
{
int l, u, m;
l = 0;
u = 6;
while (l <= u)
{
m = (l + u) / 2;
if (x[m] < t) //这里说x没有定义,前面主函数中不是定义过了么?奇怪
l = m + 1;
else if (x[m] == t)
return m;
else
u = m + 1;
}
return -1;
}
int main()
{
int x[7] = {3, 4, 5, 2, 8, 9};
cout < < binarysearch(4) < < endl;
cin.get();
return 0;
}
[解决办法]
//这里说x没有定义,前面主函数中不是定义过了么?奇怪
主函数内定义的?如果x不是全局变量,而是在主函数内定义的局部变量,那么该函数在binarysearch里是不可见的。每个函数有自己的栈,栈内的变量只能被该函数访问,所以binarysearch是访问不到主函数内定义的局部变量的
[解决办法]
int binarysearch(int t, int x[])
cout < < binarysearch(4, x) < < endl
改这两句
