#include
#include
struct st{//定义一个结构体
char a[18];//姓名
char b[17];//性别
int x;//下面是3门成绩
int y;
int z;
};
int main()
{
struct st s[11];//结构体的引用,数组s中的每一单位都拥有结构体的5个成员;
char d[12];
int n[11],k=0,t;
for(int i=0;i<10;i++)
{
scanf("%s%s%d%d%d",s[i].a,s[i].b,&s[i].x,&s[i].y,&s[i].z);
}
for(int i=0;i<10;i++)
{
n[k++]=s[i].x+s[i].y+s[i].z;//10名同学的总成绩分别储存在数组n中;
}
for(int i=0;i<10;i++)//冒泡排序
{
for(int j=0;j<10-i-1;j++)
{
if(n[j] { t=n[j]; n[j]=n[j+1];//总成绩排序 n[j+1]=t; strcpy(d,s[j].a); strcpy(s[j].a,s[j+1].a);//名字交换; strcpy(s[j+1].a,d); strcpy(d,s[j].b); strcpy(s[j].b,s[j+1].b);//性别交换 strcpy(s[j+1].b,d); t=s[j].x; s[j].x=s[j+1].x;//下面是三门成绩的交换; s[j+1].x=t; t=s[j].y; s[j].y=s[j+1].y; s[j+1].y=t; t=s[j].z; s[j].z=s[j+1].z; s[j+1].z=t; } } } printf("\n"); for(int i=0;i<10;i++) { printf("%s %s %d %d %d\n",s[i].a,s[i].b,s[i].x,s[i].y,s[i].z); } return 0; } 希望能帮到你,望采纳;