| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 304 人关注过本帖
标题:为什么查不出数来啊?
只看楼主 加入收藏
小J
Rank: 8Rank: 8
等 级:等待验证会员
威 望:1
帖 子:282
专家分:704
注 册:2009-6-18
结帖率:100%
收藏
已结贴  问题点数:50 回复次数:4 
为什么查不出数来啊?
#include <iostream>
using namespace std;
#define N 10



void print_maopao(int a[])
{
    int i;
    cout<<"排序的结果是:"<<endl;
    for(i=0;i<N;i++)
        cout<<a[i]<<endl;
}
void maopao(int a[])
{
    int i,j,k;
    for(i=0;i<=N-1;i++)
        for(j=0;j<=N-i-1;j++)
            if(a[j]>a[j+1])
            {
                k=a[j];
                a[j]=a[j+1];
                a[j+1]=k;
            }
}
int chazhao(int a[],int num)
{
    int start=0,end=N-1,mid;
    int flag=0;
    mid=(start+end)/2;
    do{
        if(num>a[mid])start=mid+1;
        else if(num<a[mid])end=mid-1;
        else
        {
            flag=1;
            break;
        }
    }while(start<=end);
        if(flag==1)
        {
            cout<<"找到这个数在mid+1上"<<mid+1<<endl;
            return(mid+1);
        }
        else
        {
            cout<<"找不到该数!"<<endl;
            return(0);
        }
}
void main()
{
    int a[N],num;
    int i;
    cout<<"请输入十个数:"<<endl;
    for(i=0;i<N;i++)
    cin>>a[i];
    maopao(a);
    print_maopao(a);
    cout<<"请输入你要查找的数:"<<endl;
    cin>>num;
    chazhao(a,num);
}
搜索更多相关主题的帖子: include start 
2009-09-08 22:47
choco1024
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:183
专家分:140
注 册:2008-8-31
收藏
得分:17 
好着在啊,我这运行正确着在,VC++6.0的编译器。
2009-09-08 23:58
小J
Rank: 8Rank: 8
等 级:等待验证会员
威 望:1
帖 子:282
专家分:704
注 册:2009-6-18
收藏
得分:0 
回复 2楼 choco1024
但是最后要查一个数的时候它没结果啊,既不显示查的到也不显示查不到!
2009-09-09 07:45
forclwy
Rank: 4
等 级:业余侠客
帖 子:167
专家分:255
注 册:2008-10-21
收藏
得分:17 
我运行了了有结果呢
2009-09-09 19:43
qlc00
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:157
专家分:540
注 册:2007-11-26
收藏
得分:0 
#include <iostream>
using namespace std;
#define N 10
 
 
 
void print_maopao(int a[])
{
    int i;
    cout<<"排序的结果是:"<<endl;
    for(i=0;i<N;i++)
        cout<<a[i]<<endl;
}
void maopao(int a[])
{
    int i,j,k;
    for(i=0;i<=N-1;i++)
        for(j=0;j<=N-i-1;j++)
            if(a[j]>a[j+1])
            {
                k=a[j];
                a[j]=a[j+1];
                a[j+1]=k;
            }
}
int chazhao(int a[],int num)
{
    int start=0,end=N-1,mid;
    int flag=0;
    mid=(start+end)/2;
    do{
        if(num>a[mid])start=mid+1;
        else if(num<a[mid])end=mid-1;
        else
        {
            flag=1;
            
        }  
        if(flag==1)
        {
            cout<<"找到这个数在"<<mid+1<<"这个位置上"<<endl;
            return(mid+1);
        }
        else
        {
            cout<<"找不到该数!"<<endl;
            return(0);
        }
    }while(start<=end);
        
}
void main()
{
    int a[N],num;
    int i;
    cout<<"请输入十个数:"<<endl;
    for(i=0;i<N;i++)
    cin>>a[i];
    maopao(a);
    print_maopao(a);
    cout<<"请输入你要查找的数:"<<endl;
    cin>>num;
    chazhao(a,num);
}
这个运行时正确的,你的if(flage==1)应该放在循环里面

Anything is possible!
2009-09-16 18:15
快速回复:为什么查不出数来啊?
数据加载中...
 
   



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

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