【AcWing每日一题】3443. 学分绩点

简介: 【AcWing每日一题】3443. 学分绩点

北京大学对本科生的成绩施行平均学分绩点制(GPA)。


既将学生的实际考分根据不同的学科的不同学分按一定的公式进行计算。


公式如下:


实际成绩 绩点

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

一门课程的学分绩点 = 该课绩点 × 该课学分


总评绩点 = 所有学科学分绩点之和 / 所有课程学分之和


现要求你编写程序求出某人 A 的总评绩点(GPA)。

输入格式

第一行,总的课程数 n;

第二行,相应课程的学分(两个学分间用空格隔开);

第三行,对应课程的实际得分;

此处输入的所有数字均为整数。
输出格式

输出有一行,总评绩点,精确到小数点后 2 位小数。

数据范围

1≤n≤10,

学分取值范围 [1,10],

课程得分范围 [0,100]。
数据范围较小,直接使用模拟计算即可

#include<iostream>
using namespace std;
double p(double s){
  if(s >= 90 && s <= 100) return 4.0;
  else if(s >= 85) return 3.7;
  else if(s >= 82) return 3.3;
  else if(s >= 78) return 3.0;
  else if(s >= 75) return 2.7;
  else if(s >= 72) return 2.3;
  else if(s >= 68) return 2.0;
  else if(s >= 64) return 1.5;
  else if(s >= 60) return 1.0;
  else return 0;
}
int main(){
  int n;//课程数n
  cin >> n;
  double cre[n], sco[n], crepoint[n];     //学分、实际得分和学分绩点 
  double gpa = 0, sum_credit, sum_crepoint; //最终的gpa,所有课程学分之和,学分绩点之和 
  for(int i = 0; i < n; i++){
    cin >> cre[i];        //输入学分 
    sum_credit += cre[i];
  } 
  for(int i = 0; i < n; i++){
    cin >> sco[i];        //输入成绩
    double point = p(sco[i]); //计算绩点 
    crepoint[i] = point*cre[i]; //计算学分绩点 
    sum_crepoint += crepoint[i];
  } 
  gpa = sum_crepoint/sum_credit;
  printf("%.2lf", gpa);
  return 0;
}
相关文章
AcWing 1265. 数星星(每日一题)
AcWing 1265. 数星星(每日一题)
AcWing 503. 借教室(每日一题)
AcWing 503. 借教室(每日一题)
AcWing 562. 壁画(每日一题)
AcWing 562. 壁画(每日一题)
|
人工智能 BI
《蓝桥杯每日一题》并查集·AcWing1249. 亲戚
《蓝桥杯每日一题》并查集·AcWing1249. 亲戚
58 0
|
机器学习/深度学习
《蓝桥杯每日一题》背包dp·AcWing3382. 整数拆分
《蓝桥杯每日一题》背包dp·AcWing3382. 整数拆分
77 0
|
算法
《蓝桥杯每日一题》二分·AcWing 1460. 我在哪?
《蓝桥杯每日一题》二分·AcWing 1460. 我在哪?
60 0
《蓝桥杯每日一题》递推·AcWing 3777. 砖块
《蓝桥杯每日一题》递推·AcWing 3777. 砖块
80 0
|
存储 人工智能 BI
AcWing - 寒假每日一题2023(DAY 11——DAY 15)
AcWing - 寒假每日一题2023(DAY 11——DAY 15)
|
机器学习/深度学习 测试技术
AcWing - 寒假每日一题2023(DAY 16——DAY 20)
AcWing - 寒假每日一题2023(DAY 16——DAY 20)
|
存储 人工智能 算法
AcWing - 寒假每日一题2023(DAY 6——DAY 10)
AcWing - 寒假每日一题2023(DAY 6——DAY 10)