样例过了但其他都wa,不知道问题在哪。
查看原帖
样例过了但其他都wa,不知道问题在哪。
431050
这一枪叫晚安楼主2020/12/20 12:54
#include<stdio.h>
#include<string.h>
struct member 
{
	char name[35];
	char po[20];
	long long co;
	int gr;
};
int main()
{
	int i, j,k=0, n, pom[8] = {1,2,2,4,7,25,10000 },s=0;
	struct member me[120] = { 0 };
	char po[8][15] = { "BangZhu","FuBangZhu","HuFa","ZhangLao","TangZhu","JingYing","BangZhong" }, position[120][20] = { 0 };
	scanf("%d", &n);
	for (i = 0; i < n; i++)
		scanf("%s%s%lld%d", me[i].name, position[i], &me[i].co, &me[i].gr);
	for(i=0;i<n-3;i++)
		for(j=0;j<n-4-i;j++)
		{
			if (me[j+3].co < me[j + 4].co)
			{
				struct member te;
				te = me[j+3];
				me[j+3] = me[j + 4];
				me[j + 4] = te;

			}
		}
	for (i = 0; i < n; i++)
	{
		for (j = i; j - i < pom[s] && j < n; j++)
		{
			strcpy(me[j].po, po[s]);
		}
		i = i + pom[s] - 1;
		s = s + 1;
	}
	int target = 3;
	for (i = 3; i < n ; i++)
	{
		if (strcmp(me[i].po,me[i + 1].po)!=0||i+1==n )
		{
			for (j = 0; j < i-target; j++)
			{
				for (k = 0; k < i-target-j; k++)
				{
					if (me[k+target].gr < me[k + 1+target].gr)
					{
						struct member r;
						r = me[k+target];
						me[k+target] = me[k + 1+target];
						me[k + 1+target] = r;
					}
				}
			}
			target = i+1;
		}
		
	}
	for (i = 0; i < 9; i++)
		printf("%s %s %d\n", me[i].name,me[i].po, me[i].gr);
	return 0;
}
2020/12/20 12:54
加载中...