| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 492 人关注过本帖
标题:顺序查找。错在哪?
只看楼主 加入收藏
cfun
Rank: 2
等 级:论坛游民
帖 子:30
专家分:41
注 册:2011-5-5
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:8 
顺序查找。错在哪?
#define maxlen 15
 int seqsearch1(int V[maxlen],int k)
 {
 int i;
 i=0;
 while((V[i]!=k)&&(i<maxlen))
 i++;
 if(V[i]==k)
 return i;

 }

 #include<stdio.h>
 #include<conio.h>
 main()
 {
 int V[15]={5,13,19,21,37,56,64,75,80,88};
 int i,k;
 scanf("%d",&k);
 i=seqsearch1(V[15],k);
 printf("%d",i);
 getch();
 }

2012-05-14 21:05
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:1 
首先,seq函数不是总有返回值的。不知道你的编译器能不能通过这样的代码。解决方法,增加没有匹配时的返回值(比如-1)。
第二,while((V[i]!=k)&&(i<maxlen)) 这句在V里不存在检索值k时会溢出。解决方法是调换条件判断顺序,应先判断i < maxlen。

重剑无锋,大巧不工
2012-05-14 21:20
cfun
Rank: 2
等 级:论坛游民
帖 子:30
专家分:41
注 册:2011-5-5
收藏
得分:0 
回复 2楼 beyondyf
加了后,无论查找哪个结果都为-1
2012-05-14 22:12
a646404908
Rank: 6Rank: 6
等 级:侠之大者
威 望:5
帖 子:189
专家分:492
注 册:2012-2-14
收藏
得分:2 
你段代码我是编译不过啦
i=seqsearch1(V[15],k);改为i=seqsearch1(V,k);

2012-05-14 23:23
S_Ringo
Rank: 4
来 自:歌舞伎町
等 级:业余侠客
帖 子:94
专家分:230
注 册:2012-4-15
收藏
得分:2 
你的seqsearch1函数中,第一个参数是int型数组,
但是你在调用seqsearch1函数的时候,传递的第一个参数是V[15],
而这个V[15]实际是一个int型数据,这样参数类型不匹配啊……
把i=seqsearch1(V[15],k);这句改为i=seqsearch1(V,k),就可以了……
2012-05-14 23:56
S_Ringo
Rank: 4
来 自:歌舞伎町
等 级:业余侠客
帖 子:94
专家分:230
注 册:2012-4-15
收藏
得分:0 
回复 4楼 a646404908
你用的编译器是什么啊?好厉害啊……介绍给我用用嘛……

我的VC6依然编译通过,只是有个警告而已……
2012-05-15 08:30
a646404908
Rank: 6Rank: 6
等 级:侠之大者
威 望:5
帖 子:189
专家分:492
注 册:2012-2-14
收藏
得分:0 
回复 6楼 S_Ringo
VC++6.0企业版
error C2664: 'seqsearch1' : cannot convert parameter 1 from 'int' to 'int []'
赶紧去下一个吧

2012-05-15 15:48
S_Ringo
Rank: 4
来 自:歌舞伎町
等 级:业余侠客
帖 子:94
专家分:230
注 册:2012-4-15
收藏
得分:0 
回复 7楼 a646404908
哦……
我的貌似也是企业版啊,为啥我就能编译通过运行?
2012-05-15 16:13
梦里仙
Rank: 2
等 级:论坛游民
威 望:2
帖 子:28
专家分:30
注 册:2012-2-24
收藏
得分:0 
i=seqsearch1(v,k);
int seqsearch1(int *V,int k)
就可以了
2012-05-15 21:37
快速回复:顺序查找。错在哪?
数据加载中...
 
   



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

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