#include <stdio.h>
#include<string.h>
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]<n[j+1])//如果if條件成立執行下面的語句;?
{
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;?
}
希望能幫到妳,望采納;