求助,10分,案例1过了,但是现在不知道怎么改
查看原帖
求助,10分,案例1过了,但是现在不知道怎么改
919186
DINGYURS楼主2023/2/2 00:22

大佬帮帮我

#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
struct People
{
	string name;
	string position;
	int bg;
	int level;
	int num;
} person[111];
bool cmp1(People x,People y)
	{
		if(x.bg != y.bg)
		{
			return x.bg > y.bg;
		}
	}
bool cmp2(People x, People y)
{
	if(x.position == y.position)
	{
		if(x.level != y.level)
		{
			return x.level > y.level;
		}
		else
		{
			return x.num < y.num;
		}
	}
}
int main()
{
	int n;
	cin >> n;
	int i;
	int sum = 1;
	string str;
	for(i=0;i<n;i++)
	{
		getline(cin,str);
		getline(cin,person[i].name,' ');
		getline(cin,person[i].position,' ');
		cin >> person[i].bg >> person[i].level;
		person[i].num = i;
	}
	sort(person+3,person+n,cmp1);
	for(i=3;i<n;i++)
	{
		if(sum>=1 && sum<=2)
		{
			person[i].position = "HuFa";
		}
		else if(sum>2 && sum<=6)
		{
			person[i].position = "ZhangLao";
		}
		else if(sum>6 && sum<=13)
		{
			person[i].position = "TangZhu";
		}
		else if(sum>13 && sum<=38)
		{
			person[i].position = "JingYing";
		}
		else
		{
			person[i].position = "BangZhong";
		}
		sum++;
	}
	sort(person+3,person+n,cmp2);
	for(i=0;i<n;i++)
	{
		cout << person[i].name << ' ' << person[i].position << ' ' << person[i].level << endl;
	}
	return 0;
}
2023/2/2 00:22
加载中...