Description
计算机系学生会体育部组织了一次“酒井杯”足球联赛,有若干支球队参加,现在联赛已经圆满落幕,各队的积分、净胜球、进球数已经计算出来了,现在要你编写一个程序计算各支球队的排名,然后按照名次从高到低的顺序将各个球队的名字打印出来。
球队的规则如下:
•先比较积分,积分高者名次在前;
•如果积分相同则比较净胜球,净胜球多者名次在前;
•如果积分、净胜球都相同则比较进球数,进球数多者名次在前;
•对于积分、净胜球和进球数都一样的球队,根据他们的名称按照字典顺序排列。
现在假设各个球队的名称都是由大写英文字母组成,并且没有重名的球队。
Main Goal:
结构体练习
Input
第一行是一个正整数N(2<=N<=10),代表球队的数目。
接下来有N行,每一行均包括一个字符串和3个整数,其中字符串代表球队的名称,长度在2与20之间,3个整数依次为球队的积分,净胜球和进球数,其中积分和进球数是0到100间的整数,净胜球的绝对值小于100。
Output
共N行,每行输出一个字符串,即球队的名称。
Sample Input
4
ACMILAN 5 1 5
SCHALKE 5 1 7
FENERBAHCE 4 -1 7
PSV 7 -1 2
Sample Output
PSV
SCHALKE
ACMILAN
FENERBAHCE
#include<stdio.h>
#include<string.h>
typedef struct quidui
{
char name[25];
int fen;
int jin;
int qiushu;
}dui;
int main(){
dui a[15];
dui h;
int n;
int i,j;
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%s %d %d %d",&a[i].name,&a[i].fen,&a[i].jin,&a[i].qiushu);
}
for(i=0;i<n-1;i++){
for(j=i;j<n;j++){
if(a[i].fen < a[j].fen){
h=a[j];
a[j]=a[i];
a[i]=h;
}
}
}
for(i=0;i<n-1;i++){
for(j=i;j<n;j++){
if((a[i].fen == a[j].fen)&&(a[i].jin<a[j].jin)){
h=a[j];
a[j]=a[i];
a[i]=h;
}
}
}
for(i=0;i<n-1;i++){
for(j=i;j<n;j++){
if((a[i].fen == a[j].fen)&&(a[i].jin==a[j].jin)&&(a[i].qiushu<a[j].qiushu)){
h=a[j];
a[j]=a[i];
a[i]=h;
}
}
}
for(i=0;i<n-1;i++){
for(j=i;j<n;j++){
if((a[i].fen == a[j].fen)&&(a[i].jin==a[j].jin)&&(a[i].qiushu==a[j].qiushu)&&(strcmp(a[i].name,a[j].name)>0)){
h=a[j];
a[j]=a[i];
a[i]=h;
}
}
}
for(i=0;i<n;i++){
printf("%s\n",a[i].name);
}
}