Start: Jan, 08, 2019 19:01:00
2018年秋季学期程序设计基础(C语言)期末考试
End: Jan, 08, 2019 21:46:00
Time elapsed:
Time remaining:

Problem_ID: G
Result: Accepted
Time: 1250ms
Memory: 1252kB
In contest: 1258

#include<stdio.h>
#include<string.h>
int main(void)
{
    struct sb
    {
     char ch[10];
     int a[4];
    }f;
	struct sb d[10010];
	int n,i,q;
	scanf("%d",&n);
	getchar();
	for(i=0;i<n;++i){
	scanf("%s%d%d%d",d[i].ch,&d[i].a[1],&d[i].a[2],&d[i].a[3]);
	getchar();
	}
	scanf("%d",&q);
	char ch1[10];
	int e,j=1;
	while(q--)
	{
	double sum=0;
	scanf("%d %s",&e,ch1);
	   if(e==1)
	   {
	    printf("Query #%d: 1 %s\n",j,ch1);
		for(i=0;i<n;++i)
		{
		if(strcmp(ch1,d[i].ch)==0)
		   {
			   printf("%d %d %d %d\n",d[i].a[1]+d[i].a[2]+d[i].a[3],d[i].a[1],d[i].a[2],d[i].a[3]);
			   break;
		   }
		}
	   }
	   else if(e==2)
	   {
		   printf("Query #%d: 2 %s\n",j,ch1);
		   if(strcmp(ch1,"1")==0)
		   {
			   for(i=0;i<n;++i)
			   {
			   sum+=d[i].a[1];
			   }
		   }
		   else if(strcmp(ch1,"2")==0)
		   {
			   for(i=0;i<n;++i)
			   {
			   sum+=d[i].a[2];
			   }
		   }
		   else	if(strcmp(ch1,"3")==0)
		   {
			   for(i=0;i<n;++i)
			   {
			   sum+=d[i].a[3];
			   }
		   }
		   printf("%.2f\n",sum/n*1.0);
	   }
	   ++j;
	}
	for(i=0;i<n;++i)
		d[i].a[0]=d[i].a[1]+d[i].a[2]+d[i].a[3];
	for(i=1;i<n;++i)
	{
		for(j=0;j<n-i;++j)
		{
			if(d[j].a[0]<d[j+1].a[0])
			{
				f=d[j];
				d[j]=d[j+1];
				d[j+1]=f;
			}
			else if(d[j].a[0]==d[j+1].a[0]&&d[j].a[1]<d[j+1].a[1])
			{
				f=d[j];
				d[j]=d[j+1];
				d[j+1]=f;
			}
			else if(d[j].a[0]==d[j+1].a[0]&&d[j].a[1]==d[j+1].a[1]&&d[j].a[2]<d[j+1].a[2])
			{
				f=d[j];
				d[j]=d[j+1];
				d[j+1]=f;
			}
			else if(d[j].a[0]==d[j+1].a[0]&&d[j].a[1]==d[j+1].a[1]&&d[j].a[2]==d[j+1].a[2]&&d[j].a[3]<d[j+1].a[3])
			{
				f=d[j];
				d[j]=d[j+1];
				d[j+1]=f;
			}
			else if(d[j].a[0]==d[j+1].a[0]&&d[j].a[1]==d[j+1].a[1]&&d[j].a[2]==d[j+1].a[2]&&d[j].a[3]==d[j+1].a[3]&&strcmp(d[j].ch,d[j+1].ch)>0)
			{
				f=d[j];
				d[j]=d[j+1];
				d[j+1]=f;
		    }
		}
	}
	for(i=0;i<n;++i)
	{
		printf("%s %d %d %d %d\n",d[i].ch,d[i].a[0],d[i].a[1],d[i].a[2],d[i].a[3]);
	}
	return 0;
}