69,373
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <string.h>
int search(int key,int a[]);
struct index
{
int key;
int start;
int end;
}index[1];
int main()
{
int i,j=-1,k,key;
int a[]={1,2,3,4,5,6,7,8,9,10,23,43,56,78,99};
printf("array is\n");
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
for(i=0;i<3;i++)
{
index[i].start=j+1;
j=j+1;
index[i].end=j+4;
j=j+4;
index[i].key=a[j];
}
printf("wanted number\n");
scanf("%d",&key);
k=search(key,a);
if(k>=0)
printf("succeed! the wanted number location %d\n",k+1);
else
printf("not found!\n");
}
int search(int key,int a[])
{
int i,j;
i=0;
while(i<39&& key>index[i].key)
i++;
if(i>=3)
return -1;
j=index[i].start;
while(j<=index[i].end&& a[j]!= key)
j++;
if(j>index[i].end)
j=-1;
return j;
}