游客 Signup | Login
中文 | En

1601 - 学分绩点


北京大学对本科生的成绩施行平均学分绩点制(GPA)。既将学生的实际考分根据不同的学科的不同学分按一定的公式进行计算。<br />

公式如下:
实际成绩 绩点
90——100 4.0
85——89 3.7
82——84 3.3
78——81 3.0
75——77 2.7
72——74 2.3
68——71 2.0
64——67 1.5
60——63 1.0
60以下 0
1.一门课程的学分绩点=该课绩点*该课学分
2.总评绩点=所有学科绩点之和/所有课程学分之和
现要求你编写程序求出某人A的总评绩点(GPA)。

<br />

Input


第一行 总的课程数n(n&lt;10);<br />

第二行 相应课程的学分(两个学分间用空格隔开);
第三行 对应课程的实际得分;
此处输入的所有数字均为整数。

<br />

Output


输出有一行,总评绩点,精确到小数点后2位小数。(printf("%.2f",GPA);)

<br />

Examples

Input

6
8 5 1 10 5 9 
59 63 65 56 96 82 
7
2 2 6 3 8 7 2 
55 53 54 93 83 72 67 

Output

1.48
1.92

Solution C

#include<stdio.h>

float switchgoal(int n)
{
	float num=0.0;
	if(n>=90)
		num=4.0;
	else if(n>=85)
		num=3.7;
	else if(n>=82)
		num=3.3;
	else if(n>=78)
		num=3.0;
	else if(n>=75)
		num=2.7;
	else if(n>=72)
		num=2.3;
	else if(n>=68)
		num=2.0;
	else if(n>=64)
		num=1.5;
	else if(n>=60)
		num=1.0;
	return num;
}

int main()
{
	int n;
	int a[10];
	int b[10];
	float c[10];
	float m;
	float sum;
	int k;
	int i,j;
	while(scanf("%d",&n)!=EOF)
	{
		k=0;
		for(i=0;i<n;i++)
			{
				scanf("%d",&a[i]);
				k+=a[i];
		}
		for(i=0;i<n;i++)
		{
			scanf("%d",&b[i]);
			m=switchgoal(b[i]);
			c[i]=m;
		}
		sum=0;
		for(i=0;i<n;i++)
			sum+=a[i]*1.0*c[i];
		printf("%.2f\n",sum/(k*1.0));
	}
	return 0;
}


Solution C++

#include <stdio.h>
#include <stdlib.h>

int main()
{
        int n, i, xufen;
        int credit[11];
        int score[11];
        double gpai, count;

        while(scanf("%d",&n) != EOF)
        {
                count = 0.00;
                xufen = 0;
                //获取学分
                for(i = 0; i < n; i ++)
                {
                        scanf("%d",credit + i);
                        xufen += credit[i];
                }
                //获取实际得分
                for(i = 0; i < n; i ++)
                {
                        scanf("%d",score + i);
                        if(score[i] <= 100 && score[i] >= 90)
                        {
                                count += 4.0 * credit[i];
                        }else if(score[i] <= 89 && score[i] >= 85)
                        {
                                count += 3.7 * credit[i];
                        }else if(score[i] <= 84 && score[i] >= 82)
                        {
                                count += 3.3 * credit[i];
                        }else if(score[i] <= 81 && score[i] >= 78)
                        {
                                count += 3.0 * credit[i];
                        }else if(score[i] <= 77 && score[i] >= 75)
                        {
                                count += 2.7 * credit[i];
                        }else if(score[i] <= 74 && score[i] >= 72)
                        {
                                count += 2.3 * credit[i];
                        }else if(score[i] <= 71 && score[i] >= 68)
                        {
                                count += 2.0 * credit[i];
                        }else if(score[i] <= 67 && score[i] >= 64)
                        {
                                count += 1.5 * credit[i];
                        }else if(score[i] <= 63 && score[i] >= 60)
                        {
                                count += 1.0 * credit[i];
                        }else
                        {
                                count += 0 * credit[i];
                        }
                }
                
                //求gpa
                printf("%.2lf\n",count / xufen);
        }

        return 0;
}
Time Limit 1 second
Memory Limit 32 MB
Discuss Stats
上一题 下一题