最近在看b站上的视频学习c语言,他在函数这一节中有一个关于二分法求下标的题,我跟着敲了一遍缺怎么也做不出来,代码如下
#include<stdio.h>
int chazhao(int arr[], int sz, int k)
{
int left = 0;
int right = sz - 1;
while (left <= right)
{
int mid = (left + right) / 2;
if (arr[mid] < k)
left = mid + 1;
else if (arr[mid] > k)
right = mid - 1;
else (arr[mid] = k)
return mid; //提示缺少;
}
return -1;
}
int main()
{
int arr[] = { 0,1,2,3,4,5,6,7,8,9,10 }, sz, k;
sz = sizeof(arr) / sizeof(arr[0]);
printf("请输入要查找的数字\n");
scanf_s("%d", &k);
int x=chazhao(arr, sz, k);
if (x = -1)
printf("没有找到该下标\n");
else
printf("该数字的下标是%d\n", x);
return 0;
} //最终结果只会输出没有该下标
二分法求解过程中if else循环出问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- Kx_Kevin 2022-06-13 18:08关注
if (x = -1)
printf("没有找到该下标\n");
if的=改成==就行了本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥20 如何通过代码传输视频到亚马逊平台
- ¥15 php查询mysql数据库并显示至下拉列表中
- ¥15 freertos下使用外部中断失效
- ¥15 输入的char字符转为int类型,不是对应的ascall码,如何才能使之转换为对应ascall码?或者使输入的char字符可以正常与其他字符比较?
- ¥15 devserver配置完 启动服务 无法访问static上的资源
- ¥15 解决websocket跟c#客户端通信
- ¥30 Python调用dll文件输出Nan重置dll状态
- ¥15 浮动div的高度控制问题。
- ¥66 换电脑后应用程序报错
- ¥50 array数据同步问题