#include
#include
#define N 3
int num[N];
int i;
float math[N];
float english[N];
float physics[N];
float total[N];
float average[N];
int rank[N];
int main()
{void input();
void count();
void sort();
void print();
void search();
printf("\t1.学生信息录入\n");
printf("\t2.统计总分和平均分\n");
printf("\t3.按总分成绩排序\n");
printf("\t4.打印出名次表\n");
printf("\t5.学生信息查询\n");
char ch;
ch=getchar();
switch(ch)
{case1:input();break;
case2:count();break;
case3:sort();break;
case4:print();break;
case5:search();break;
default:putchar('\a');
}
return 0;
}
void input()
{for(int i=0;i<N;i++)
{ printf("输入学号:");
scanf("%d",&num[i]);
printf("数学成绩:");
scanf("%f",&math[i]);
printf("英语成绩:");
scanf("%f",&english[i]);
printf("物理成绩:");
scanf("%f",&physics[i]);
}
}
void count()
{for(int i=0;i<N;i++)
{total[i]=math[i]+english[i]+physics[i];
average[i]=total[i]/3.0;
}
}
void sort()
{int t;
count();
for(int j=0;j<N-1;j++)
for(int i=0;i<N-1-j;i++)
{if(total[i]<total[i+1])
t=total[i];total[i]=total[i+1];total[i+1]=t;
}
for(int k=0;k<N;k++)
rank[k]=k+1;
}
void print()
{printf("学号\t数学\t英语\t物理\t总分\t平均分\t排名");
printf("%d\t%f\t%f\t%f\t%f\t%f\t%d",num[i],math[i],english[i],physics[i],total[i],average[i],rank[i]);
}
void search()
{int n;
printf("\ninput number to look for:");
scanf("%d",&n);
int top,bott,mid,loca,sign;
top=0;
bott=N-1;
loca=0;
sign=1;
if((nnum[N-1]))
loca=-1;
while((sign==1)&&(top<=bott))
{mid=(bott+top)/2;
if(n==num[mid])
{loca=mid;
printf("NO.%d his sort is %d,math score is %f,english score is %f,physics score is %f.",n,rank[loca],math[loca],english[loca],physics[loca]);
sign=-1;
}
else if(n<num[mid])
bott=mid-1;
else
top=mid+1;
}
if(sign==1||loca==-1)
printf("%d not been found\n",n);
}