定义一个结构体数组,拟实现下面的表格,表头的属性名字自拟,如姓名可以起名为name、xm、姓名等等,数据内容自拟(不得雷同),请按总分进行排序,以降序的顺序显示出所有的信息。(人数不得少于十人)。
#include<stdio.h>
struct student {
double id;
char name[50];
int e,c,a;
}students[100];
int main()
{
int n,i,a,b;
double sum=0,num=0;
char str[50];
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%lf %s %d %d",&students[i].id,&students[i].name,&students[i].e,&students[i].c);
students[i].a=students[i].c+students[i].e;
}
for(a=0;a<n-1;a++)
{
for(b=0;b<n-1-a;b++)
{
if(students[b].a<students[b+1].a)
{
i=students[b].e; //交换英语成绩
students[b].e=students[b+1].e;
students[b+1].e=i;
i=students[b].c; //交换计算机成绩
students[b].c=students[b+1].c;
students[b+1].c=i;
i=students[b].a; //交换计算机成绩
students[b].a=students[b+1].a;
students[b+1].a=i;
strcpy(str,students[b].name);
strcpy(students[b].name,students[b+1].name);
strcpy(students[b+1].name,str);
memset(str,0,sizeof str);
i=students[b].id; //交换学号
students[b].id=students[b+1].id;
students[b+1].id=i;
}
}
}
for(i=0;i<n;i++)
printf("%.0lf %s %d %d %d\n",students[i].id,students[i].name,students[i].e,students[i].c,students[i].a);
}