足球比赛,有人吗
足球比赛结果排名规则:按积分从高到低排名,积分相同的球队按净胜球从多到少排名。输入格式:
第一行一个整数n(n<40),表示球队数量;
接下来n行为每个球队的信息:球队名(长度不超过20的字符串,无空格)、积分、净胜球。
输出格式:
输出排名后的球队信息,每支球队一行,依次为:排名 球队名、积分、净胜球。排名从1开始。
输入
3
hengda 45 20
shanggang 50 18
luneng 40 15
输出
1 shanggang 50 18
2 hengda 45 20
3 luneng 40 15
#include <stdio.h>
#include <stdlib.h>
struct team
{
char name;
int jf,jsq;
};
int cmp (const void* a,const void* b)
{
struct team *a1=(struct team*)a,*b1=(struct team*)b;
if(b1->jf==a1->jf)return b1->jsq-a1->jsq;
return b1->jf-a1->jf;
}
int main()
{
int i,j,n;
scanf("%d",&n);
struct team teams,tmp={0};;
for(i=0;i<n;i+=1)scanf("%s%d%d",teams.name,&teams.jf,&teams.jsq);
qsort(teams,n,sizeof(struct team),cmp);
for(i=0,j=0;i<n;i+=1)
{
if(tmp.jf!=teams.jf||teams.jsq!=tmp.jsq)j+=1;
printf("%d %s %d %d\n",j,teams.name,teams.jf,teams.jsq);
tmp=teams;
}
6
shanggang1 50 18
hengda 45 20
shanggang 50 18
luneng 40 15
hengda1 45 20
luneng1 40 16
1 shanggang 50 18
1 shanggang1 50 18
2 hengda1 45 20
2 hengda 45 20
3 luneng1 40 16
4 luneng 40 15
Process returned 0 (0x0) execution time : 1.402 s
Press any key to continue.
return 0;
}
页:
[1]