题意: 给定一些比赛成绩,排序,哪个队更优 思路 : 胜的队加分的形式,最后按分排序,但这个思路其实有问题,加分的方案不合理,至少我代码是,题目数据弱吧……懒的想了 #include <iostream> using namespace std; class Team { public: int score; char name; Team() { score=1; } }; int cmp(const void *a,const void *b) { Team *c=(Team*)(a); Team *d=(Team*)(b); return d->score-c->score; } int main() { Team team[27]; int nowteam=0; char a,b; while(cin>>a>>b) { int i; for(i=1;i<=nowteam;++i) { if(a==team[i].name) { team[i].score+=1; break; } } if(i==nowteam+1) { nowteam++; team[nowteam].name=a; team[nowteam].score=2; } for(i=1;i<=nowteam;++i) { if(b==team[i].name) { break; } } if(i==nowteam+1) { nowteam++; team[nowteam].name=b; team[nowteam].score=1; } } qsort(&team[1],nowteam,sizeof(team[0]),cmp); bool isfirst=true; for(int i=1;i<=nowteam;++i) { if(isfirst) { printf("%c",team[i].name); isfirst=false; } else { printf(" %c",team[i].name); } } putchar('/n'); }