C语言——球队排名

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);
	}
}

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值