### 我把思路写出来了,很好理解的,求帮忙
查看原帖
### 我把思路写出来了,很好理解的,求帮忙
663738
lrfsjzm楼主2022/2/19 19:19

我想着前三个肯定是帮主和副帮主,就没动,然后就又开一个数组存帮贡的数据,对新数组进行进行快排,然后通过与新数组大小的比较确定职位,然后通过多次循环按照职位大小输出

#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;
}
2022/2/19 19:19
加载中...