【程序设计训练】世界杯来了

该博客介绍了一个程序设计问题,涉及模拟2118年中国世界杯决赛阶段的比赛规则。问题要求根据输入的球队数量、球队名和比赛结果,确定进入淘汰赛的球队名单。程序设计中使用结构体存储球队信息,并通过自定义函数统计比赛数据。提供的C++代码已通过全部测试用例。
摘要由CSDN通过智能技术生成

原文链接:39.世界杯来了
个人思路仅供参考,如有不足欢迎指出。
更正:代码156、167行“+=”改为“-=”,另外比赛场次可以用n*(n-1)/2而不用C(n,2),题目有提到……

【问题描述】

2018年俄罗斯世界杯结束了,法国获得冠军,全世界球迷度过了一个非常愉快的夏天。作为中国球迷,不能总是看别人踢球,这不福利来了,根据FIFA(国际足联)及全体成员协会的一致决定,2118年世界杯将在中国举办,作为东道主,中国队将无需参加预选赛而直接参加决赛阶段的比赛。

比赛规则如下:

总共n(n为偶数)个球队参加比赛

按照分组赛积分排名,前n/2的球队进入淘汰赛

积分排名的规则如下:球队获胜得3分,平局得1分,失利得0分,按照积分递减、净胜球递减以及进球数递减方式排名

编写一个程序,根据给出的参赛队伍名单和所有比赛的结果,找出成功进入淘汰赛阶段的球队名单。

【输入形式】

第一行输入包含唯一整数n(1<=n<=50),参加世界杯决赛的球队数量。接下来的n行是各球队的名字,为长度不超过30个字符的英文字符。接下来的n*(n-1)/2行,每行格式name1-name2 num1:num2(0<=num1, num2<=100),表示对阵球队及比分.

【输出形式】

输入n/2行,表示进入淘汰赛阶段的球队,按照字典序进行排列,每个球队名字占一行。

【样例输入】

4
A
B
C
D
A-B 1:1
A-C 2:2
A-D 1:0
B-C 1:0
B-D 0:3
C-D 0:3

【样例输出】

A
D

【思路和做法】

  • 主要是使用结构体存储各个球队的信息,用自定义函数来实现比赛信息的统计;
  • 提交代码如下(10/10分,C++):
 //39.世界杯来了
#include <iostream>
#include <algorithm>
#include <vector>
#include <string>

using namespace std;

struct team
{
   
    string t_name; //队伍名
    int score_sum; //积分
    int goals;     //进球数
    int goals_n;   //净胜球数
    team(string name)
    {
   
        this->t_name = name;
        this->score_sum = 0;
        this->goals = 0;
        this->goals_n = 0;
    }
};

int n;        //有几支队伍
int num_cmpt; //一共几场比赛
string name;  //队伍名称

vector<team> teams;           //参赛队伍
vector<team>::iterator it;    //迭代器it
vector<string> teams_vic;     //进入淘汰赛的球队
vector<string>::iterator t_v; //迭代器t_v
vector<string> teams_cmpt;    //某场比赛的两支队伍
string cmpt;                  //某场比赛的两支队伍
int goal_1, goal_2;           //两支队伍得分
char chr;                     //占位

bool 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值