帮忙看看我编的多文件工程有什么问题,谢谢。
struct staff{char *p;int n;};
extern void input(struct staff *q);
extern void rank(struct staff *q);
extern void search(struct staff *q,int n,int bot,int top);
#include <stdio.h>
void main()
{struct staff person[10];
int number,bot=0,top=10;
input(person);
rank(person);
printf("you are looking for number is\n");
scanf("%d",number);
search(person,number,bot,top);
}/*主文件*/
#include <stdio.h>
void input(struct staff *q)
{int i;
for(i=0;i<10;i++)
{ gets((*(q+i)).p);
scanf("%d",&(*(q+i)).n);}
}/*输入*/
#include <stdio.h>
void rank(struct staff *q)
{int i,j,k,temp1;
char *temp2;
for(i=0;i<9;i++)
{k=i;
for(j=i+1;j<10;j++)
if((*(q+j)).n<(*(q+i)).n)
k=j;
if(k!=i)
{temp1=(*(q+i)).n; (*(q+i)).n=(*(q+k)).n; (*(q+k)).n=temp1;
temp2=(*(q+i)).p; (*(q+i)).p=(*(q+k)).p; (*(q+k)).p=temp2; }
}
}/*选择法排序*/
#include <stdio.h>
void search(struct staff *q,int n,int bot,int top)
{int mid;
mid=(bot+top)/2;
if((*q).n==n)
puts((*q).p);
else
if(n>(*(q+mid)).n)
{bot=mid+1;
search(q,n,bot,top);}
if(n<(*(q+mid)).n)
{top=mid-1;
search(q,n,bot,top);}
}/*二分搜索*/