c语言写的题目,20分
查看原帖
c语言写的题目,20分
1020958
55guozi楼主2023/11/3 23:50
#include<stdio.h>
#include<string.h>
int n;
struct people{
	char name[31];			//姓名 
	char zw[20];			//职位 
	long long int bg;		//帮贡 
	int le;					//等级 
};
struct people ans[115];
//对帮贡进行排序 
void sort1(struct people *s)
{
	int i,j;
	for(i=4;i<n;i++)
	{
		int t=i;
		for(j=i+1;j<=n;j++)
		{
			if(s[j].bg>s[i].bg)
				t=j;
		}
		struct people m=s[i];
		s[i]=s[t];
		s[t]=m;
	}
 }
//按排名赋予新的职位 
void fz(struct people *s)
{
	int i;
	for (i=1;i<=n;i++){
	if (i==1) strcpy(s[i].zw,"BangZhu");
	else if (i==2||i==3) strcpy(s[i].zw,"FuBangZhu");
	else if (i==4||i==5) strcpy(s[i].zw,"HuFa");
	else if (i>=6&&i<=9) strcpy(s[i].zw,"ZhangLao");
	else if (i>=10&&i<=16) strcpy(s[i].zw,"TangZhu");
	else if (i>=17&&i<=41) strcpy(s[i].zw,"JingYing");
	else strcpy(s[i].zw,"BangZhong");
	}
}
//对相同职位的进行等级排序 
void sort2(struct people *s,int i,int j)
{
	int l;
	for(;i<j;i++)
	{
		int t=i;
		for(l=i+1;l<=j;l++)
		{
			if(s[l].le>s[i].le)
				t=l;
		}
		struct people m=s[i];
		s[i]=s[t];
		s[t]=m;
	}
 }
int main()
{
	int i;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		scanf("%s",ans[i].name);
		scanf("%s",ans[i].zw);
		scanf("%lld %d",&ans[i].bg,&ans[i].le);
	}
	sort1(ans);
	fz(ans);
	//对相同职位进行等级排序 
	sort2(ans,2,3);
	sort2(ans,4,5);
	sort2(ans,6,9);
	sort2(ans,10,16);
	sort2(ans,17,41);
	sort2(ans,41,n);
	for(i=1;i<=n;i++)
	printf("%s %s %d\n",ans[i].name,ans[i].zw,ans[i].le);
	return 0;
}
```c
2023/11/3 23:50
加载中...