# include <stdio.h>
# define length 10
struct STU
{
long int NO;
char name[20];
float average_score;
};
int main()
{
struct STU stu[10]={
{1001,"guoyongwei",80.0},
{1002,"zhaochong",81.0},
{1003,"hewei",82.0},
{1004,"wangwei",83.0},
{1005,"zhaohanqing",84.0},
{1006,"shuxin",85.0},
{1007,"wangjinbo",86.0},
{1008,"gonglian",87.0},
{1009,"houyazhou",88.0},
{1010,"gehaifeng",89.0}
};
int i;
printf("/n=================================================/n");
printf("学生学号 学生的姓名 平均成绩/n");
for(i = 0;i<10;i++)
printf("%d/t/t%-16s/t%lf/n",stu[i].NO,stu[i].name,stu[i].average_score);
printf("/n=================================================/n");
float low,high,mid;
float no ;
printf("请输入您想查找学生的成绩:/n");
scanf("%f",&no);
int first = 0;
int last = length-1;
int MID;
int count1=0;
while(first<=last)
{
MID =(first + last)/2;
mid = stu[MID].average_score;
low= stu[first].average_score;
high = stu[MID].average_score;
if(no<mid)
last = MID - 1;
else if(no>mid)
first = MID +1;
else if(no == mid)
{
count1++;
printf("找到学生的相关信息:/n");
printf("/n=================================================/n");
printf("学生学号 学生的姓名 平均成绩/n");
printf("%d/t%s/t%lf/t/n",stu[MID].NO,stu[MID].name,stu[MID].average_score);
printf("/n=================================================/n");
return MID;}
}
if(count1==0)
printf("对不起没有学生的相关的信息:/n");
return 0;
}