7-2-1 vector 动态数组 谁是冠军 (300分)

小博自从参加昆仑虚兴趣小组以来,对编程产生了浓厚的兴趣。他发现用计算机编程不但可以训练思维,还可以解决学习和生活中的一些实际问题。比如,世界杯足球赛时,小博就经常把其中的一些球队列出来,组成一个小团队,然后根据规则计算积分,并根据积分的高低看看这个团队内谁是冠军。假如某次足球赛的积分规则如下:每胜一局得3分,每平一局得1分,每输一局扣1分,积分最高者为冠军。小博就想编这样一个程序,输入若干球队的成绩,就能自动求出这个团队中谁是冠军。你也能编一个吗?
输入格式:

有N+1行,第一行是输入的球队数N,第2行~第N+1是每行队的比赛成绩,依次为球队编号、胜局数、平局数、负局数(均为小于1000的整数),每个数据间用一空格隔开。输入的数据保证积分各不相同。

输出格式:

结果输出到文件中,只有一个数,就是冠军队的编号。

输入样例:

4
1 5 4 3 
2 3 4 5 
3 6 3 3 
4 4 2 6 

输出样例:

3
#include <iostream>
#include <string>
#include<algorithm>
#include<bits/stdc++.h>
#include<stack>
using namespace std;
struct Node{
    
    
	int ying,ping,shu;//赢平输
	int sum=0;//球队总得分
	int id;//球队编号
}a[100000];
bool cmp(struct Node a,struct Node b){
    
    //sort函数排序条件
	return a.sum>b.sum;
}
int main() {
    
    
        int n;
		cin>>n;
		int i,j;
	
		for(i=0;i<n;i++){
    
    
		
			cin>>a[i].id;
			cin>>a[i].ying>>a[i].ping>>a[i].shu;
			a[i].sum=a[i].ying*3+a[i].ping-a[i].shu;
		}
		sort(a,a+n,cmp);
		cout<<a[0].id;//输出最大的即可
}

猜你喜欢

转载自blog.csdn.net/weixin_45962741/article/details/112739187
今日推荐