| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1085 人关注过本帖
标题:为何这段程序之返回-1,请问怎么修改
取消只看楼主 加入收藏
欧阳艺文
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2016-6-16
结帖率:0
收藏
 问题点数:0 回复次数:1 
为何这段程序之返回-1,请问怎么修改
int search1(int len,char word)//查询单词位置
{                                                                     
    int l=0;
    int r=len -1;                                       
    {
        int m;
        while(l<=r)
        {
            m=(l+r)/2;
            char *temp;
            temp=&word;
            if(strcmp(temp,words[m])==0)
                return m;
            else if(strcmp(temp,words[m])>0)
                l=m+1;
            else
                r=m-1;

        }
        return -1;
    }
}
注:读取部分正常。
词典文件内的单词和中文意思读取在 * words[]数组内
文件内容:a 一个
          you 你
2016-06-16 19:43
欧阳艺文
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2016-6-16
收藏
得分:0 
对,这段代码一直返回-1
这函数是找运行程序时和输入的英相同的读在words[m]数组里的文件里面的英文,如果相同则放回那英文在文件里的位置。
char word,却大费周章转换成char*tem——至于这是因为如把char *temp; temp=&word;这去掉则vs2012编译器一直报错显示char 类型的实参与const char*类型的形参不兼容,所以就这样写了
2016-06-17 20:49
快速回复:为何这段程序之返回-1,请问怎么修改
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018784 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved