CCF-训练50题-NO.15-选美比赛
2017-11-11 01:24
260 查看
题目描述
在选美大奖赛的半决赛现场,有n名选手(2输入
选手数量:7选手得分:5 3 4 7 3 5 6
输出
选手的排名:3 5 4 1 5 3 2样例代码
#include <iostream> using namespace std; void exchange2(int &a,int &b){ int temp=a; a=b; b=temp; } int main(){ int n; cin>>n; int *pep=new int ; int *forRank=new int ; int *collect=new int ; for (int i=0;i<n;i++) { cin>>pep[i]; forRank[i]=pep[i]; } for (int i=0;i<n;i++) for (int j=i+1;j<n;j++){ if (forRank[i]<forRank[j]) exchange2(forRank[i],forRank[j]); } int pos=0; for (int k=0;k<n;k++){ if (forRank[k]>forRank[k+1]){ collect[pos]=forRank[k]; pos++; } else if (k==n-1) collect[pos]=forRank[k]; } for (int i=0;i<n;i++){ for (int j=0;j<=pos;j++){ if (pep[i]==collect[j]){ //cout<<pep[i]<<"="<<collect[j]<<" i="<<i<<" ;j="<<j<<endl; pep[i]=j+1; break; } } } for (int k=0;k<n;k++) {cout<<pep[k];if (k<n-1) cout<<" ";} return 0; } //提示:本题的关键在于如何处理同分数的选手排名问题
相关文章推荐
- CCF-训练50题-NO.21-部分A+B
- CCF-训练50题-NO.22-A除以B
- CCF-训练50题-NO.23-锤子剪刀布
- CCF-训练50题-NO.1-数塔问题
- CCF-训练50题-NO.24-个位数统计
- CCF-训练50题-NO.25-组个最小数
- CCF-训练50题-NO.3-数字排序问题
- CCF-训练50题-NO.26-在霍格沃茨找零钱
- CCF-训练50题-NO.4-相邻数对问题
- CCF-训练50题-NO.27-挖掘机技术哪家强
- CCF-训练50题-NO.5-画图
- CCF-训练50题-NO.11-身份证校验
- CCF-训练50题-NO.28-到底买不买
- CCF-训练50题-NO.6-字符串匹配问题
- CCF-训练50题-NO.12-多项式加法
- CCF-训练50题-NO.7-日历问题
- CCF-训练50题-NO.13-数码管
- CCF-训练50题-NO.8-生理周期
- CCF-训练50题-NO.14-字母排列
- CCF-训练50题-NO.29-最少钱币数