输入5位同学的一组信息,包括学号、姓名、数学成绩、计算机成绩,求得每位同学的平均分和总分,然后按照总分从高到低排序,排序用函数实现。(使用结构体)
#include<stdio.h>
#include<string.h>
struct student
{
long long num;
char name[20];
int score1;
int score2;
float sum;
float aver;
};
int main()
{
struct student stu[5];
struct student temp;
int i,k,j;
for(i=0;i<5;i++)
{
scanf("%lld %s %d %d",&stu[i].num, stu[i].name, &stu[i].score1, &stu[i].score2);
stu[i].sum=stu[i].score1+stu[i].score2;
stu[i].aver=stu[i].sum/2.0;
}
for(i=0;i<4;i++)
{
k=i;
for(j=i+1;j<5;j++)
if(stu[j].sum>stu[k].sum)
k=j;
temp=stu[k];
stu[k]=stu[i];
stu[i]=temp;
}
for(i=0;i<5;i++)
{
printf("\n%lld %s %d %d %.2f %.2f\n",stu[i].num, stu[i].name, stu[i].score1, stu[i].score2, stu[i].sum, stu[i].aver);
}
}