#include
#include
#define NUM 100
typedef struct node
{
int x;
int y;
}node ;
node global[NUM]={-999};
int count=0;
int find(int left,int right,node x)
{
int mid =(left +right )/2;
if (left==mid )
{
if( x.x==global [right].x)
return right;
else if( x.x==global [left].x)
return left;
else
return -1;
}
else if( x.x > global [ mid ].x )
return find ( mid ,right ,x );
else
return find (left , mid , x);
}
int main()
{
int i=0,j=0;
struct node temp;
for(i=0;i { j=i*i; temp.x=j; printf(" (%d) ",temp.x); global[i].x=j; } printf("\n"); temp.x=0; find ( 0,NUM-1,temp); for(i=0;i { temp.x=global[i].x; printf("result is {%d } \n", find ( 0 , NUM-1 , temp)); } printf("new\n "); while ( scanf("%d",&j) && j ) { temp.x=j; printf("result is {%d } \n", find ( 0 ,NUM-1 , temp)); } } 摘自 chenbingchenbing的专栏