| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3187 人关注过本帖
标题:用折半法在一维数组a中查找数值x,若找到输出下标。
只看楼主 加入收藏
mi1992
Rank: 2
等 级:论坛游民
帖 子:21
专家分:13
注 册:2010-4-23
结帖率:62.5%
收藏
已结贴  问题点数:30 回复次数:2 
用折半法在一维数组a中查找数值x,若找到输出下标。
请高手帮我补全中间的部分。
折半法是将a的n 个元素分为个数大致相同的两半,取a[/2]比较,如果想等,则找到x;如果x<a,则在左半部分找,(数组元素成升序排列),如果x>a,则在右半部分找。

#include<stdio.h>
void main()
{
   float a[10],x;
   int i,low,high,mid;
   printf("请从小到大一次输入10个数组元素值:\n");
   for(i=0;i<=9;i++)
       scanf("%f",&a[i]);
   printf("input x:");
   scanf("%f",&x);
   low=0;
   high=9;
   while(low<=high)
   {
      
                                \\这里不会写了,请大家帮我想一下,谢谢。
      
   }
   if(low>while)
   printf("无此数\n");
}
搜索更多相关主题的帖子: 数值 输出 
2010-05-05 08:38
NOMIPS
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:86
专家分:537
注 册:2010-3-31
收藏
得分:20 
#include <stdio.h>
int main(int argc, char *argv[])
{


   float a[10],x;
   int i,low,high,mid;
   int flag=0;
   printf("请从小到大一次输入10个数组元素值:\n");
   for(i=0;i<=9;i++)
       scanf("%f",&a[i]);
   printf("input x:");
   scanf("%f",&x);
   low=0;
   high=9;
   while(low<=high)
   {
     mid=(high+low)/2;
    if (a[mid]==x)
    {
        flag=1;
        break;
    }
    else if(x<a[mid])
        high=mid-1;
    else
        low=mid+1;

   }
  if(flag==1)
        printf("x=%d\n",mid);
  else
        printf("无此数\n");
    return 0;
}
2010-05-05 09:53
lwlls668
Rank: 2
等 级:论坛游民
帖 子:59
专家分:72
注 册:2010-4-9
收藏
得分:10 
#include<stdio.h>
 main()
{
    int x,a[10],i,low,high,mid;
    for (i=0;i<10;i++)
        scanf("%d",&a[i]);
    printf("which num do you want to find ?\nx=");
    scanf("%d",&x);
    low=0;
    high=9;
    while (1)
    {
        mid=(high+low)/2;
        if (a[mid]==x)
        {
            printf("%d",mid);
            break;
        }
        else (a[mid]>x)?high=mid:low=mid;
        if (low+1>=high)
        {
            printf("wrong number !");
            break;
        }
    }
}
2010-05-05 12:21
快速回复:用折半法在一维数组a中查找数值x,若找到输出下标。
数据加载中...
 
   



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

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