| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 679 人关注过本帖
标题:哪里错了?
只看楼主 加入收藏
haiyungood
Rank: 2
等 级:论坛游民
帖 子:83
专家分:98
注 册:2008-7-2
结帖率:100%
收藏
 问题点数:0 回复次数:4 
哪里错了?
自己用折半查找法写了个程序但不知道哪里错了,请各位帮忙看看是哪里错了,谢谢了,
程序如下:
#include<iostream>
using namespace std;
int main()
{
int a[11]={11,10,9,8,7,6,5,4,3,2,1};
int i,l,h,m ,n;
l=0;
h=10;
m=(l+h)/2;
cout<<"请输入要查找的数:";
cin>>n;
for(i=0;i<11;i++)
if((n>a[0])||(n<a[10]))
{
cout<<"无此数。"<<endl;
break;
}
else if(n==a[m])
{
cout<<"要查找的数为第"<<m+1<<"个元素."<<endl;
break;
}
else if(n<a[m])l=m+1;
else h=m-1;
return 0;
}
搜索更多相关主题的帖子: TAG 
2008-11-19 18:37
debroa723
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:23
帖 子:862
专家分:1954
注 册:2008-10-12
收藏
得分:0 
...
else if(n<a[m])m=m+1;
else m=m-1;
...
l和h换成m
2008-11-19 21:04
debroa723
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:23
帖 子:862
专家分:1954
注 册:2008-10-12
收藏
得分:0 
你是想用折半查找吧,做了点修改:
#include "stdafx.h"
#include<iostream>

using namespace std ;

int _tmain(int argc, _TCHAR* argv[])
{
    int a[11]={11,10,9,8,7,6,5,4,3,2,1};
    int i,l,h,m ,n;
    l=0;
    h=10;
    m=(l+h)/2;
    cout<<"请输入要查找的数:";
    cin>>n;    
    if((n>a[0])||(n<a[10]))
    {
        cout<<"无此数。"<<endl;
    }
    else
    {
        for(i=0;i<11;i++)
        {
            if(n==a[m])
            {
                cout<<"要查找的数为第"<<m+1<<"个元素."<<endl;
                break;
            }else if(n<a[m])
            {
                l=m+1;
                m=(l+h)/2;
            }else
            {
                h=m-1;
                m=(l+h)/2;
            }
        }
    }
    return 0;
}
2008-11-19 21:09
haiyungood
Rank: 2
等 级:论坛游民
帖 子:83
专家分:98
注 册:2008-7-2
收藏
得分:0 
谢谢了,现在终于懂了,
2008-11-19 22:44
hitcolder
Rank: 1
等 级:新手上路
威 望:1
帖 子:124
专家分:0
注 册:2008-10-28
收藏
得分:0 
for(i=0;i<11;i++)
{ m=(l+h)/2;                     /////楼主只要把这句话换到这里就OK了,再加个{}就没问题了
if((n>a[0])||(n<a[10]))
{
cout<<"无此数。"<<endl;
break;
}
else if(n==a[m])
{
cout<<"要查找的数为第"<<m+1<<"个元素."<<endl;
break;
}
else if(n<a[m])l=m+1;
else h=m-1;
}

程序本身并没有什么问题,就是一句话的位置不太对

不要在你的智慧中夹杂傲慢,也不要使你们的谦卑缺乏智慧的成分。
2008-11-20 16:25
快速回复:哪里错了?
数据加载中...
 
   



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

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