首页 > 试题广场 >

题目标题: 卫星定位

[问答题]

题目标题:

卫星定位

题目描述:

编写程序,对一个已经排好序的数组,输入一个元素。将该元素在数组中的位置索引出来(折半查找)。例如原数组为:1 2 6 7 9,输入待查找的元素7,则查找结果为4,如果没有找到该元素,则输出-1

输入描述:

输入包含两部分,第一部分先输入n,表示数组中元素数,接着输入n个已经排序好的数,数组最大个数n20,第二部分为待查找的数据

输出描述:

待查找的元素位置

样式输入:

5

1 2 6 7 9

7

样式输出:

4

#define M 25
#include<stdio.h>
int main()
{
static int a[25];
int i,n,low,mid,high,flag,x;
scanf("%d",&n);
low=0;
high=n-1;
flag=-1;
for(i=0;i<n;i++)
scanf("%d",&a[i]);
scanf("%d",&x);
while(low<=high)  /*
老师上课讲的经典算法*/
{
mid=(low+high)/2;
if (x==a[mid])
{
flag=mid+1;break;
}
else if
(x>a[mid])
low=mid+1;
else high=mid-1;
}
printf("%d",flag);
return 0;
}

发表于 2017-05-17 04:28:05 回复(0)