中超联赛
题目描述(结构体排序)
中超联赛拥有大量的现场观众和收视观众,球迷都渴望观看比赛,同时希望能有一个平台更深度的了解中超联赛,体验中超球队的辛苦和努力。每场足球比赛历时90分钟,分为上半场和下半场。
中超的积分规则如下:赢得一场比赛得3分,平一场得1分,输球不得分。例如一个球队的胜平负的场次分别为11 2 2,那么积分就是113+21=35。今年的中超联赛已经落下帷幕,请你帮忙计算出各球队的总积分并按照积分给出球队最终的排名吧!
输入
输入有多行。第一行是球队数量n(1<n<=16)
接下来有n行,每行数据包含球队的名称(不含空格,长度不超过30个字符)和胜、平、负的场次,数据间以空格分开
输出
输出各个球队按照积分的排名情况(保证所有球队的积分各不相同) ,每行输出球队的名次、名称和该队的积分,数据间用一个空格分开,每行末尾没有空格
样例输入
复制样例数据
3
shanghaishanggang 11 2 2
beijingguoan 12 2 1
shandonglunengtaishan 10 1 4
样例输出
1 beijingguoan 38
2 shanghaishanggang 35
3 shandonglunengtaishan 31
#include <stdio.h>
#include <stdlib.h>
#define N 50
typedef struct play
{
char name[1000];
int win;
int equle;
int fail;
int sum;
}P;
int comp(P*a,P*b)
{
return(b->win*3+b->equle)-(a->win*3+a->equle);
}
int main()
{
int n,i;
scanf("%d",&n);
P s[n];
for(i=0;i<n;i++)
{
scanf("%s %d %d %d",&s[i].name,&s[i].win,&s[i].equle,&s[i].fail);
s[i].sum=s[i].win*3+s[i].equle;
}
qsort(s,n,sizeof(P),comp);
for(i=0;i<n;i++)
{
printf("%d %s %d\n",i+1,s[i].name,s[i].sum);
}
return 0;
}