| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 607 人关注过本帖
标题:一个低级的错误!大家来看看
只看楼主 加入收藏
freeday_zhao
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2004-12-11
收藏
 问题点数:0 回复次数:4 
一个低级的错误!大家来看看

#include<stdio.h> int binsearch(int x,int v[],int n);

int main() { int a,k,i,c,b[10]; c=10; printf("查找的数:"); scanf("%d",a); printf("从小到大输入:"); for(i=0;i<=9;i++) scanf("%d",&b[i]); binsearch(a,b[],c); return k; printf("这是第%d个数\n",k); } /*binsearch:find x in v[0]<=v[1]<=...<=v[n-1]*/ int binsearch(int x,int v[],int n) { int low,high,mid;

low=0; high=n-1; mid=(low+high)/2; while (low<=high&&x!=v[mid]){ if(x<v[mid]) high=mid-1; else low=mid+1; mid=(low+high)/2; } if(x==v[mid]) return mid;/*found match*/ else return -1;/*no match*/ }

搜索更多相关主题的帖子: include return 
2005-01-12 02:04
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 

趁天使不在,沙发~~ 哦,还有一个问题啊~~~真多

来,看看你的原代码,同样,我也改动了格式

#include<stdio.h> int binsearch(int x,int v[],int n);

int main() { int a,k,i,c,b[10];

c=10; printf("查找的数:"); scanf("%d",a); printf("从小到大输入:"); for(i=0;i<=9;i++) scanf("%d",&b[i]); binsearch(a,b[],c); /*这里,b[]参数不能这么写*/ return k; /*这么快就return啦?!那你下一句还要来干吗?而且k是什么?*/

printf("这是第%d个数\n",k); }

/*binsearch:find x in v[0]<=v[1]<=...<=v[n-1]*/ int binsearch(int x,int v[],int n) { int low,high,mid;

low=0; high=n-1; mid=(low+high)/2; while (low<=high&&x!=v[mid]) { if(x<v[mid]) high=mid-1; else low=mid+1; mid=(low+high)/2; }

if(x==v[mid]) return mid;/*found match*//*我们习惯从1开始数数,不是0*/ else return -1;/*no match*/ }

这个代码明显比上一个要好多了。进步比我要快很多啊,我至今仍然还是个小菜鸟T_T 下面是修改过的代码

#include<stdio.h> int binsearch(int x,int v[],int n);

int main() { int a,k,i,c=10,b[10];

printf("查找的数:"); scanf("%d",&a); printf("从小到大输入10个整数:"); for(i=0;i<=9;i++) scanf("%d",&b[i]);

k=binsearch(a,b,c); /*参数b[]改为b,并且给k赋值*/ printf("这是第 %d 个数\n",k); getch(); return k /*return 放这里才合理*/ }

/*binsearch:find x in v[0]<=v[1]<=...<=v[n-1]*/ int binsearch(int x,int v[],int n) { int low=0,high=n-1,mid=(low+high)/2;

while (low<=high&&x!=v[mid]) { if (x<v[mid]) high=mid-1; else low=mid+1; mid=(low+high)/2; }

if(x==v[mid]) return mid+1;/*found match*/ /*我们数数,从"1"开始*/ else return -1;/*no match*/ }


淘宝杜琨
2005-01-12 09:02
abingchem
Rank: 6Rank: 6
等 级:贵宾
威 望:24
帖 子:716
专家分:0
注 册:2004-12-30
收藏
得分:0 
神vLinux飘飘够认真,向神vLinux飘飘学习

此人已消失
2005-01-12 09:33
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
谢谢,习惯啦~~希望你们不要说我太"唐僧"就行~

淘宝杜琨
2005-01-12 09:35
Sm1LeB0Ss
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2005-1-12
收藏
得分:0 
不会的,顶多说你是罗嗦
2005-01-12 11:38
快速回复:一个低级的错误!大家来看看
数据加载中...
 
   



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

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