下面程序实现折半查找算法,当找到输入元素后显示其在数组中的下标。找出其中的错误,并改正之 #include <stdio.h> main() { int up=10, low=1, mid, found, find; int a[10]={1, 5, 6, 9, 11, 17, 25, 34, 38, 41}; scanf("%d", find); printf("\n"); while (up>=low || !found) { mid=(up+low)/2; if( a[mid] = find ) { found=1; break; } else if(a[mid]>find) up=mid+1; else low=mid+1; } if(found) printf("found number is %dth", mid); else printf("no found"); }
时间: 2023-12-09 21:03:07 浏览: 62
修改后的程序如下:
```c
#include <stdio.h>
int main() {
int up = 9, low = 0, mid, found = 0, find;
int a[10] = {1, 5, 6, 9, 11, 17, 25, 34, 38, 41};
scanf("%d", &find);
printf("\n");
while (up >= low) {
mid = (up + low) / 2;
if (a[mid] == find) {
found = 1;
break;
} else if (a[mid] > find) {
up = mid - 1;
} else {
low = mid + 1;
}
}
if (found) {
printf("found number is %dth", mid);
} else {
printf("no found");
}
return 0;
}
```
修改的错误如下:
1. 缺少 `return` 语句;
2. 把 `find` 的地址传递给 `scanf`,应该传递 `&find`;
3. 初始化 `found` 的值为 0;
4. 修改 `if` 判断条件中的 `=` 为 `==`;
5. 修改 `else if` 判断条件中的 `up` 和 `low` 方向;
6. 修改输出信息中的格式错误。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)