数据结构二分排序之学生信息查询简单系统

# 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;       
}

 


 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值