我想着前三个肯定是帮主和副帮主,就没动,然后就又开一个数组存帮贡的数据,对新数组进行进行快排,然后通过与新数组大小的比较确定职位,然后通过多次循环按照职位大小输出
#include<iostream>
#include<algorithm>
using namespace std;
int a[115];
struct bp
{
string name;
string zw;
long long int bg, dj;
}p[115];
int main()
{
int n;
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> p[i].name >> p[i].zw >> p[i].bg >> p[i].dj;
a[i] = p[i].bg;//新开一个数组
}
sort(a+3, a + n);//前三个不动
for (int i = 3; i < n; i++)
{
if (p[i].bg == a[n - 1] || p[i].bg == a[n - 2])
{
p[i].zw = "HuFa";
}
for (int j = n - 3; j >= n - 6&&j>=3; j--)
{
if (p[i].bg == a[j])
{
p[i].zw = "ZhangLao";
}
}
for (int j = n - 7; j >= n - 13 && j >= 3; j--)
{
if (p[i].bg == a[j])
{
p[i].zw = "TangZhu";
}
}
for (int j = n - 14; j >= n - 37 && j >= 3; j--)
{
if (p[i].bg = a[j])
{
p[i].zw = "JingYing";
}
}
for (int j = n - 38; j >= 3; j--)
{
if (p[i].bg == a[j])
{
p[i].zw = "BangZhong";
}
}
}
for (int i = 0; i < 3; i++)
{
cout << p[i].name << ' ' << p[i].zw << ' ' << p[i].dj << endl;
}
for (int i = 3; i < n; i++)
{
if (p[i].zw == "HuFa")
{
cout << p[i].name << ' ' << p[i].zw << ' ' << p[i].dj << endl;
}
}
for (int i = 3; i < n; i++)
{
if (p[i].zw == "ZhangLao")
{
cout << p[i].name << ' ' << p[i].zw << ' ' << p[i].dj << endl;
}
}
for (int i = 3; i < n; i++)
{
if (p[i].zw == "TangZhu")
{
cout << p[i].name << ' ' << p[i].zw << ' ' << p[i].dj << endl;
}
}
for (int i = 3; i < n; i++)
{
if (p[i].zw == "JingYing")
{
cout << p[i].name << ' ' << p[i].zw << ' ' << p[i].dj << endl;
}
}
for (int i = 3; i < n; i++)
{
if (p[i].zw == "BangZhong")
{
cout << p[i].name << ' ' << p[i].zw << ' ' << p[i].dj << endl;
}
}
return 0;
}