为了账号安全,请及时绑定邮箱和手机立即绑定

求高手帮忙编译段主函数来调用他,并预先设定几个单词做数据可供查找,然后输入的单词在这里面?

求高手帮忙编译段主函数来调用他,并预先设定几个单词做数据可供查找,然后输入的单词在这里面?

C++ C
莫回无 2022-08-04 07:07:31
#include <iostream>using namespace std;char * search_word(char * word,char * dict[],int n){int low=0,high=n-1,mid,searchpos,wordlen=strlen(word);do{mid=(low+high)/2;searchpos=strnicmp(word,dict[mid],wordlen);if(searchpos==0)return dict[mid];else if(searchpos<0)high=mid+1;elselow=mid+1;}while(high>low);return NULL;}
查看完整描述

3 回答

?
手掌心

TA贡献1942条经验 获得超3个赞

void main()
{
//注意dict内的单词必须是有序的,也就是从小到大(按字母顺序)。
char* dict[]={"abc","Defg","hijk","Lmn"};
char* p=search_word("hijk",dict,4);
if(p)
{
printf("找到了:%s\n",p);
}
else
{
printf("没找到!\n");
}
}

查看完整回答
反对 回复 2022-08-08
?
三国纷争

TA贡献1804条经验 获得超7个赞

你这个函数本身就有错误 二分查找一个典型错误 high = mid + 1; low = mid - 1
还有你把问题说清楚,有些不明白

查看完整回答
反对 回复 2022-08-08
?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

二分法使用的一个前提是数据有序

查看完整回答
反对 回复 2022-08-08
  • 3 回答
  • 0 关注
  • 110 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号