giegie666 发表于 2022-12-23 21:39:39

足球比赛,有人吗

足球比赛结果排名规则:按积分从高到低排名,积分相同的球队按净胜球从多到少排名。

输入格式:
第一行一个整数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

jhq999 发表于 2022-12-24 07:52:25

#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]
查看完整版本: 足球比赛,有人吗