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: 36ms
Memory: 1560kB
In contest: 1258

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
typedef struct Student{
	char xh[10];
	int gs,c,xd,zf;
}st;
int cmp(const void *a,const void *b)
{
	st *p=(st *)a;
	st *q=(st *)b;
	if(p->zf > q->zf)
	{
		return -1;
	}
	else if(p->zf < q->zf)
	{
		return 1;
	}
	else{
	if(p->gs > q->gs)
	{
		return -1;
	}
	else if(p->gs < q->gs)
	{
		return 1;
	}
	else
	{
		if(p->c > q->c)
    	{
	    	return -1;
	    }
    	else if(p->c < q->c)
    	{
	    	return 1;
     	}
		else
		{
			if(p->xd > q->xd)
        	{
	         	return -1;
	        }
        	else if(p->xd < q->xd)
        	{
	        	return 1;
         	}
         	else
         	{
         		if(strcmp(p->xh,q->xh)<0)
             	{
	             	return -1;
	            }
             	else
            	{
	            	return 1;
             	}
			}
	  	}   
	}
}
}
int main()
{
	st a[11000];
	int n,i,q,y,ch,j;
	char x[110];
	double sum=0;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%s %d %d %d",a[i].xh,&a[i].gs,&a[i].c,&a[i].xd);
		a[i].zf=a[i].gs+a[i].c+a[i].xd;
	}
	scanf("%d",&q);
	for(i=1;i<=q;i++)
	{
		sum=0;
		scanf("%d",&ch);
		if(ch==1)
		{
			scanf("%s",x);
	        for(j=0;j<n;j++)
	       	{
			    if(strcmp(x,a[j].xh)==0)
	    	   	{
		    	    printf("Query #%d: %d %s\n",i,ch,x);
			       	printf("%d %d %d %d\n",a[j].zf,a[j].gs,a[j].c,a[j].xd);
		    	}
    	    }
	   	}
		else if(ch==2)
		{
			scanf("%d",&y);
			{
				if(y==1)
				{
					for(j=0;j<n;j++)
	            	{
			            sum=sum+a[j].gs;
			        }
			        printf("Query #%d: %d %d\n",i,ch,y);
			        printf("%.2f\n",sum*1.0/n);
    	        }
    	        else if(y==2)
				{
					for(j=0;j<n;j++)
	            	{
			            sum=sum+a[j].c;
			        }
			        printf("Query #%d: %d %d\n",i,ch,y);
			        printf("%.2f\n",sum*1.0/n);
    	        }
    	        else if(y==3)
				{
					for(j=0;j<n;j++)
	            	{
			            sum=sum+a[j].xd;
			        }
			        printf("Query #%d: %d %d\n",i,ch,y);
			        printf("%.2f\n",sum*1.0/n);
    	        }
			}
		}       
	}	
    qsort(a,n,sizeof(st),cmp);
    for(i=0;i<n;i++)
	{
	    printf("%s %d %d %d %d\n",a[i].xh,a[i].zf,a[i].gs,a[i].c,a[i].xd);
    }
	return 0;
}