C. f1二

题目描述

世界一级方程式锦标赛(FIA Formula 1 World Championship),简称F1,是由国际汽车运动联合会(FIA)举办的最高等级的年度系列场地赛车比赛,是当今世界最高水平的赛车比赛,与奥运会、世界杯足球赛并称为“世界三大体育盛事”。
目前f1车手积分的计算方法为:
1、前十名记分。2、某站比赛第一名到第10名取得的积分依次为25、18、15、12、10、8、6、4、2、1。现请你写一段程序来输出某站比赛过后,各某车手的排名。
输入:
第一行为一个整数n(0<n<21),后边n行每一行为一名车手的的成绩,格式为:开始为两个用空格分隔的字符串(每个字符串均只包含大小写字母,且长度不超过25),第一字符串代表该车手的名字,第二个字符串代表该车手所在车队的名字,后边为一个整数,代表该车手的当前的积分。

输出:
为n行,每行一名车手的信息,格式与输入时相同。输出顺序为按积分由高到低。测试用例保证:1、输入合法;2、没有积分相同的车手;3、所有整数可以用int存储。

输入样例

10
CarlosSainz Renault 53
DanielRicciardo RedBullRacing 170
KevinMagnussen Haas 56
KimiRaikkonen Ferrari 251
LewisHamilton Mercedes 408
MaxVerstappen RedBullRacing 249
NicoHulkenberg Renault 69
SebastianVettel Ferrari 320
SergioPerez ForceIndia 62
ValtteriBottas Mercedes 247

输出样例

LewisHamilton Mercedes 408
SebastianVettel Ferrari 320
KimiRaikkonen Ferrari 251
MaxVerstappen RedBullRacing 249
ValtteriBottas Mercedes 247
DanielRicciardo RedBullRacing 170
NicoHulkenberg Renault 69
SergioPerez ForceIndia 62
KevinMagnussen Haas 56
CarlosSainz Renault 53
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct race
{
	char st[30];
	char st1[30];
	int score;
};
int main()
{
    int n,i,j,k;
	typedef struct race ABC;
	ABC per[21];
	scanf("%d",&n);
	getchar();
	for(i=0;i<n;i++)
	  scanf("%s%s%d",per[i].st,per[i].st1,&per[i].score);
	// for(i=0;i<n;i++)
	  // printf("%s %s %d\n",per[i].st,per[i].st1,per[i].score);  
	ABC tempStr;
	int temp, loc;
	for (loc = n - 1; loc >= 1; loc--)
	{
		for (i = 0; i < loc; i++)
		{
			if (per[i].score< per[i + 1].score)
			{
				tempStr = per[i];
				per[i] = per[i + 1];
				per[i + 1] = tempStr;
			}
		}
	}
	
	for(i=0;i<n;i++)
	   printf("%s %s %d\n",per[i].st,per[i].st1,per[i].score);
	return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_43911865/article/details/86564136