| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2949 人关注过本帖
标题:用折半法查找数据
取消只看楼主 加入收藏
terry6677
Rank: 1
等 级:新手上路
帖 子:45
专家分:5
注 册:2015-6-29
结帖率:80%
收藏
已结贴  问题点数:20 回复次数:4 
用折半法查找数据
题目是15个以排好序的数,新输入一个数,用折半法查找。

我有两个问题:1、输入的数字在区间范围但是不是里面某一个数的时候,会陷入死循环,怎么样子让它输出“这个数不存在”?
              2、最后输入Y/N时,为什么我不能输入。
#include <stdio.h>
#define N 15
main()
{
    int s[N] = { 14,25,36,47,58,69,147,258,369,74,85,96,741,852,963}, i, j, temp, n;
    int top, bottle, mid, sign;
    char c;
 
    for ( i = 1; i < N; i++ )
        for ( j = 0; j < N - i; j++ )
            if ( s[j] < s[j + 1] )
            {   
                temp = s[j];
                s[j] = s[j + 1];
                s[j + 1] = temp;
            }
    for ( i = 0; i < N; i++ )
        printf ("%d  ",s[i]);

    while ( 1 )
    {
        printf ("input a number:");
        scanf ("%d",&n);
        top = 1;
        bottle = N;
        sign = 1;
        while ( sign == 1 )
        {
            mid = ( top + bottle ) / 2;   
            if ( n > s[0] || n < s[N - 1] )
            {
                printf ("the number is not exist");
                sign = 0;
            }
            else
                if ( n == s[mid] )
                {
                    printf ("%d 's number is s[%d]\n",n,mid);
                    break;
                }
                else
                    if ( n > s[mid] )
                        bottle = mid - 1;
                    else
                        if ( n < s[mid] )
                            top = mid + 1;
        }
        printf ("continue? Y/N");
        scanf ("%c",&c);
        if ( c == 'n' || c == 'N' )
            break;
    }
}



   

        







搜索更多相关主题的帖子: include bottle 
2015-11-11 22:19
terry6677
Rank: 1
等 级:新手上路
帖 子:45
专家分:5
注 册:2015-6-29
收藏
得分:0 
回复 2楼 诸葛欧阳
谢谢,好了。
请问为什么最后我不能输入y/n?
2015-11-12 08:28
terry6677
Rank: 1
等 级:新手上路
帖 子:45
专家分:5
注 册:2015-6-29
收藏
得分:0 
回复 4楼 rjsp
应该怎么操作呢?
2015-11-12 15:15
terry6677
Rank: 1
等 级:新手上路
帖 子:45
专家分:5
注 册:2015-6-29
收藏
得分:0 
回复 7楼 rjsp
好了,这是为什么呢?
2015-11-13 10:44
terry6677
Rank: 1
等 级:新手上路
帖 子:45
专家分:5
注 册:2015-6-29
收藏
得分:0 
回复 8楼 wmf2014
这个也好用,请教这是为什么?
2015-11-13 10:45
快速回复:用折半法查找数据
数据加载中...
 
   



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

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