您的位置:首页 > 其它

有15个数按由大到小顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。如果该数不在数组中,则输出“无此数”

2018-01-29 20:56 941 查看
#include <stdio.h>

#include <conio.h>

int main(){

  int a[7]={1,2,3,4,5,6,7};

  int i,num,n,low,high,mid;

  printf("数组为:\n");

  for(i=0;i<7;i++)

    printf("%3d",a[i]);

  printf("\n请输入数组中的一个数:");

  scanf("%d",&num);

  n=7;

  low=0;

  high=n-1;

  while(low<=high){

    mid=(low+high)/2;

    if(num<a[mid])

      high=mid-1;

    else if(num>a[mid])

      low=mid+1;

    else if(num==a[mid]){

      printf("%d是数组中第%d个元素的值",num,mid+1);

      break;

    }

  }

  if(num!=a[mid])

    printf("无此数");

  getch();

  return 0;


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐