| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1105 人关注过本帖
标题:为何这段程序之返回-1,请问怎么修改
只看楼主 加入收藏
欧阳艺文
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2016-6-16
结帖率:0
收藏
 问题点数:0 回复次数:3 
为何这段程序之返回-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
lanke711
Rank: 9Rank: 9Rank: 9
来 自:流浪在天国之路
等 级:蜘蛛侠
威 望:7
帖 子:317
专家分:1437
注 册:2015-7-16
收藏
得分:0 
在楼主的另外一个贴子已经说过,
一个函数,需不需要返回值?需要返回什么对象?完全取决于程序的需要。
不是说别人写的代码返回-1.你就一定要返回-1。

普通人之所以普通,是因为他们普遍有一个通病,那就是认为自己永远普通。
千夫所指,我亦坚持。就算被所有人误解,我也照样守护这一切。
我们总是觉得,这些灵魂的表情,傲慢自大,目中无人,其实,真正目中无人的是我们。它们傲慢的不过是表情,而我们傲慢的却是行为!
记得,是为了忘记!
只要想着有那么一天,我就能忍受现在的每一天!
灾难并不可怕,可怕的是心中没有了希望。
你以为我在天堂,其实我正在路上。
当你觉得自己走不到终点的时候,请不要放弃。或许你的对手也是这种感觉。
2016-06-17 03:29
书生牛犊
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:星夜征程
等 级:贵宾
威 望:10
帖 子:1101
专家分:5265
注 册:2015-10-27
收藏
得分:0 
回复 2楼 lanke711

是说这段代码有问题吗?一直返回-1。

我看不太明白这段代码是要干嘛,乍一看我以为是要在一个字符串里面查找是否存在某个字符,但是我自己人工模拟运行却发现他是二分查找,从字符串的中间开始。

然后明明只是一个char word,却大费周章转换成char*temp(这一步就会产生错误,因为字符串需要有一个‘\0’做结尾,而函数传进来的只是一个字符,后面会是什么,随机!)
还要调用strcmp去比较。

我看不懂这是要找什么?函数究竟是要找什么


[此贴子已经被作者于2016-6-17 16:08编辑过]


φ(゜▽゜*)♪
2016-06-17 16:01
欧阳艺文
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.018505 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved