文章
7
粉丝
211
获赞
10
访问
37.0k
#include<iostream>
#include<algorithm>
using namespace std;
typedef struct {
int num; // 编号
double data[4]; // 金牌 奖牌 金牌人口比例 奖牌人口比例
int people; // 人口
int rank[4]; // 排名
} Country;
// 按金牌排名
bool cmp1(Country a, Country b) {
return a.data[0] > b.data[0];
}
// 按奖牌排名
bool cmp2(Country a, Country b) {
return a.data[1] > b.data[1];
}
// 按金牌人口比例排名
bool cmp3(Country a, Country b) {
return a.data[2] > b.data[2];
}
// 按奖牌人口比例排名
bool cmp4(Country a, Country b) {
return a.data[3] > b.data[3];
}
// 计算排名 m国家数 factor排名方式
void countRank(Country *q,int m,int factor) {
int i = 1;
q[0].rank[factor] = 1;
for (; i < m; i++) {
if (q[i].data[factor] == q[i - 1].data[factor]) // 数据相同,排名并列
q[i].rank[factor] = q[i - 1].rank[factor];
else q[i].rank[factor] = i+1; // 排名并列但占位 如1 2 2 4
}
}
void countFinal(int rank[]) {
int i = 3,j=3;
int r = rank[3]; // 标志为最小
for (; i >= 0; i--) { // 往前找更小的
if (rank[i] <= r...
登录后发布评论
暂无评论,来抢沙发