萌新求助!
查看原帖
萌新求助!
398190
Celestial_Intertwine楼主2021/7/24 14:16

求大佬帮忙debug

#include<iostream>
#include<algorithm>
using namespace std;

struct node{
	string name,work,now;
	int level,num;//num输入序号 
	long long bg;
}a[120];

bool cmp_bg(node a,node b){//按照帮贡从大到小排序node类 
	return a.bg>b.bg;
} 

int shift(string s){
	if (s=="BangZhu") return 0;
	if (s=="FuBangZhu") return 1;
	if (s=="HuFa") return 2;
	if (s=="ZhangLao") return 3;
	if (s=="TangZhu") return 4;
	if (s=="JingYing") return 5;
	if (s=="BangZhong") return 6;
}

bool cmp2(node x,node y){
	if (shift(x.now)==shift(y.now)){
		if (x.level==y.level) return x.num<y.num;
		return x.level>y.level;
	}
	return shift(x.now)<shift(y.now);
}

main(){
	int n;
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i].name>>a[i].work>>a[i].bg>>a[i].level;
		a[i].now=i;
	} 
	cout<<endl;
	sort(a+4,a+n+1,cmp_bg); 
	for (int i=1;i<=n;i++){
	if (i==1) a[i].now="BangZhu";
	else if (i==2||i==3) a[i].now="FuBangZhu";
	else if (i==4||i==5) a[i].now="HuFa";
	else if (i>=6&&i<=9) a[i].now="ZhangLao";
	else if (i>=10&&i<=16) a[i].now="TangZhu";
	else if (i>=17&&i<=41) a[i].now="JingYing";
	else a[i].now="BangZhong";
	}
	
	sort(a+1,a+n+1,cmp2);
	for(int i=1;i<=n;i++) cout<<a[i].name<<" "<<a[i].work<<" "<<a[i].level<<endl;;
} 









2021/7/24 14:16
加载中...