1 solutions

  • 0
    @ 2021-10-25 22:54:41

    这是一个模拟题,模拟题的特点就是比较绕,难度并不大,考细心程度和阅读理解能力吧,这个题对于新手而言是比较毒瘤的。接到出题任务的时候,我就分到了模拟题,然后。。。。。。为了让大家有游戏体验,我又重新出了一个~ 这个题大概就分为三步:首先。计算学习成绩。接着,计算综合成绩。最后查找两项成绩的最大值,若是同一个人,则这个人就是“卷王”。否则,卷王就不存在。所有成绩的计算公式都在题目中给出了的哦!

    给一个参考代码吧~

    #include<stdio.h>
    int main()
    {
    	int n,i,j;
    	double MAXGPA=-1,MAXZH=-1;
    	int GPAWIN=-1,ZHWIN=-1;
    	scanf("%d",&n);
    	double gpa[1024],zh[1024];
    	for (i=0;i<n;i++)
    	{
    		int k;
    		scanf("%d",&k);
    		double sum=0,jd=0;
    		for (j=0;j<k;j++)
    		{
    			double f,a,A;
    			scanf("%lf %lf",&f,&a);
    			if (a>=60)
    			{
    				A=(a-60)/10+1;
    			}
    			else
    			{
    				A=0;
    			}
    			sum=sum+f;
    			jd=jd+A*f; 
    		 }
    		 gpa[i]=(double)jd/sum;
    	     double jia=0;
    		 scanf("%lf",&jia);
    		 if (gpa[i]>=1)
    		 {
    		
    		 	zh[i]=(gpa[i]*10+50)*0.6+jia;
    		 }
    		 else
    		 {
    		 	zh[i]=gpa[i]*100*0.6*0.6+jia;
    		 }
    	}
    	for (i=0;i<n;i++)
    	{
    		if (MAXGPA==-1 || MAXGPA<=gpa[i])
    		{
    			if (MAXGPA==gpa[i] && zh[i]>=MAXZH)
    			{
    				MAXGPA=gpa[i];
    			    GPAWIN=i+1;
    			}
    			if (MAXGPA<gpa[i])
    			{
    				MAXGPA=gpa[i];
    		    	GPAWIN=i+1;
    			}
    		}
    		if (MAXZH==-1 || MAXZH<=zh[i])
    		{
    			if (MAXZH==zh[i] && gpa[i]>=MAXGPA)
    			{
    				MAXZH=zh[i];
    			    ZHWIN=i+1;
    			}
    			if (MAXZH<zh[i])
    			{
    				MAXZH=zh[i];
    			    ZHWIN=i+1;
    			}
    		}
    	}
    
    	if (GPAWIN==ZHWIN)
    	{
    		printf("%d号同学是卷王\n",GPAWIN);
    	}
    	else
    	{
    		printf("大家还不够卷,要加油哦\n");
    	}
    	return 0;
    }
    

    Information

    ID
    128
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    8
    Tags
    # Submissions
    40
    Accepted
    7
    Uploaded By