小组的晋级球队

来源:互联网 发布:手机快速截图软件 编辑:程序博客网 时间:2024/06/11 05:02

题目:选出给定小组球队数,以及比赛信息,输出晋级的小组。(按积分)相互胜负关系未考虑,净胜球未考虑。

#include<iostream>#include<string>#include<vector>#include<algorithm>using namespace std;int main(){int teamnum = 0;//队伍数cout<<"Input teamnum: ";cin>>teamnum;vector<string> vecs;//输入的队伍名 如 guangzhou int num[100]={0};//队伍积分数 num[0]就是 vecs[0]队伍的积分    cout<<"Input "<<teamnum<<" teamnum: "<<endl;for(int i=0;i<teamnum;++i)//输入队伍名{string str;cin>>str;vecs.push_back(str);}    cout<<"Input "<<teamnum<<" team match information like:A-B 2:0 "<<endl;for(int i=0;i<teamnum*(teamnum-1)/2;++i){string teamname;string scoreinfo;string strA;string strB;string strC;string strD;        //队伍的比赛信息 如 guangzhou:shenzhen 3:0 形式cin>>teamname;//队伍信息cin>>scoreinfo;//比分信息//队伍与比分有空格分开for(int i=0;i<teamname.size();++i){if(teamname[i]!='-')strA=strA+teamname[i];//队伍信息中A队伍名else break;}for(int i=strA.size()+1;i<teamname.size();++i){if(teamname[i]!=' ')strB=strB+teamname[i];//B队伍名else break;}for(int i=0;i<scoreinfo.size();i++){if(scoreinfo[i]!=':')strC=strC+scoreinfo[i];//比分信息中A队伍得分else break;}for(int i=strC.size()+1;i<scoreinfo.size();i++){if(scoreinfo[i]!=':')strD=strD+scoreinfo[i];//B队伍得分else break;}if(strC>strD)//得分比较{for(int i=0;i<vecs.size();++i){if(vecs[i]==strA)num[i]+=3;if(vecs[i]==strB)num[i]+=0;}}if(strC==strD){for(int i=0;i<vecs.size();++i){if(vecs[i]==strA)num[i]+=1;if(vecs[i]==strB)num[i]+=1;}}if(strC<strD){for(int i=0;i<vecs.size();++i){if(vecs[i]==strA)num[i]+=0;if(vecs[i]==strB)num[i]+=3;}}}int max =0;//求最大的值int t=0;//最大值的下标    cout<<"Output the "<<teamnum/2<<" qualified team and points:"<<endl;for(int i=0;i<teamnum/2;++i){max=0;for(int i=0;i<teamnum;++i){if(max<num[i]){ max=num[i];//最大值t=i;//下标赋给t}    }    cout<<vecs[t]<<" "<<max<<endl;//输出拥有最大积分的队名    num[t]=0;//将最大积分变为0,以便找出下一个最大积分的队名}}


原创粉丝点击