39 lines
929 B
C++
39 lines
929 B
C++
|
|
#include <bits/stdc++.h>
|
||
|
|
using namespace std;
|
||
|
|
const int N = 110;
|
||
|
|
int n = 4;
|
||
|
|
struct Node{
|
||
|
|
string name;
|
||
|
|
int id;
|
||
|
|
int score;
|
||
|
|
}a[N];
|
||
|
|
bool cmp(Node x,Node y){
|
||
|
|
if(x.score==y.score) return x.id<y.id;
|
||
|
|
return x.score>y.score;
|
||
|
|
}
|
||
|
|
int main() {
|
||
|
|
a[1] = {"AA", 1, 100};
|
||
|
|
a[2] = {"BB", 2, 90};
|
||
|
|
a[3] = {"CC", 3, 90};
|
||
|
|
a[4] = {"DD", 4, 100};
|
||
|
|
//排序
|
||
|
|
sort(a + 1, a + 1+n,cmp);
|
||
|
|
for (int i = 1; i <= n; i++) cout << a[i].name << " ";
|
||
|
|
cout<<endl;
|
||
|
|
|
||
|
|
|
||
|
|
int mc = 1; //当前是第几名
|
||
|
|
int sl = 0; //当前名次数量
|
||
|
|
for (int i = 1;i<=n;i++){
|
||
|
|
// 如果与前一位一样,那么当前名次数量+1;否则是1
|
||
|
|
if(a[i].score==a[i-1].score){
|
||
|
|
sl++;
|
||
|
|
} else {
|
||
|
|
mc+=sl;
|
||
|
|
sl = 1;
|
||
|
|
}
|
||
|
|
//输出当前名次
|
||
|
|
cout << mc << " ";
|
||
|
|
}
|
||
|
|
return 0;
|
||
|
|
}
|