学分绩点和是北京航空航天大学最终排名的主要依据,它的计算规则是每门必修课的学分乘以该门课获得的绩点。而每门课绩点的计算公式如下:
若成绩大于等于90分,则绩点记为1.5
若成绩大于等于80而小于90,则绩点记为1.3
若成绩大于等于70而小于80,则绩点记为1.1
若成绩大于等于60而小于70,则绩点记为1.0
若成绩小于60,则绩点记为0.0
而体育必修(及体育课外)的优、良、中、及格、不及格的绩点分别对应1.5、1.3、1.1、1.0和0
由于成绩是各科老师给的,每科成绩最终出来的时间通常是不同的。某时间sb.知道了自己若干科目的成绩,那么请你帮忙算算,他/她的平均绩点和是多少?
为了简化问题,这里不考虑体育课。
对了,忘了说,平均绩点和是保留两位小数的(四舍五入)。
- 输入
-
多组数据,第一行为数据组数T
对于每组数据,首先是一个数字N,表示sb.已经知道N科的成绩,接下来是N对实数Ai ,Bi分别为这N科的学分和sb.的成绩。
- 输出
-
对于每组数据,输出一行,为一个实数,表示sb.的平均绩点和。
解题思路:此题是一道模拟题,注意区间进行判断即可。最后将相应的绩点相加。
#include <iostream> #include <cstdio> using namespace std; int main() { int number; double sum,c; int a,b; cin>>number; for(int i=0;i<number;i++) { int temp; sum=0; cin>>temp; for(int j=0;j<temp;j++) { cin>>a>>b; if(b>=90) c=1.5; else { if(b>=80) c=1.3; else { if(b>=70) c=1.1; else { if(b>=60) c=1.0; else c=0; } } } sum+=a*c; } printf("%.2lf\n",sum); } return 0; }