本帖最后由 yanglfree 于 2013-8-30 14:42 编辑
刚刚在做折半法查找的时候发现的一个小问题- if (key > arr[mid])
- min = mid + 1;
- else if (key < arr[mid])
- max = mid - 1;
- mid = (min + max)/2;
- else
- return mid;
复制代码 写的程序是上面的,结果编译的时候提示“有if但是没有else”,我就奇怪了明明有if的啊,后来仔细看才发现在else之前加了一句话
应该就是这句话把if语句给打断了,不知道是不是这么理解,改成下面的就编译成功了- if (key > arr[mid])
- min = mid + 1;
- else if (key < arr[mid])
- max = mid - 1;
- else
- return mid;
- mid = (min + max)/2;
复制代码 |