考研机试:学分绩点
描述
北京大学对本科生的成绩施行平均学分绩点制(GPA)。
既将学生的实际考分根据不同的学科的不同学分按一定的公式进行计算。
公式如下:
一门课程的学分绩点 = 该课绩点 × 该课学分
总评绩点 = 所有学科学分绩点之和 / 所有课程学分之和
现要求你编写程序求出某人 A 的总评绩点(GPA)。
输入描述:
第一行,总的课程数 n;
第二行,相应课程的学分(两个学分间用空格隔开);
第三行,对应课程的实际得分;
此处输入的所有数字均为整数。
输出描述:
输出有一行,总评绩点,精确到小数点后 2 位小数。
输入
5
4 3 4 2 3
91 88 72 69 56
输出
2.52
代码
#include<bits/stdc++.h>
using namespace std;
double GPA(int n,int point[],double score[]){
double ans=0;
int sumpoints=0;
for(int i=0;i<n;i++){
sumpoints+=point[i];
ans+=score[i]*point[i];
}
ans/=sumpoints;
return ans;
}
int main(){
int n,point[10],temp;
double score[10];
cin>>n;
for(int i=0;i<n;i++){
cin>>point[i];
}
for(int i=0;i<n;i++){
cin>>temp;
if(temp>=90&&temp<=100){
score[i]=4.0;
}
else if(temp>=85&&temp<=89){
score[i]=3.7;
}
else if(temp>=82&&temp<=84){
score[i]=3.3;
}
else if(temp>=78&&temp<=81){
score[i]=3.0;
}
else if(temp>=75&&temp<=77){
score[i]=2.7;
}
else if(temp>=72&&temp<=74){
score[i]=2.3;
}
else if(temp>=68&&temp<=71){
score[i]=2.0;
}
else if(temp>=64&&temp<=67){
score[i]=1.5;
}
else if(temp>=60&&temp<=63){
score[i]=1.0;
}
else
score[i]=0;
}
printf("%.2lf",GPA(n,point,score));
}