GPA计算 UESTC - 152
GPA计算 UESTC - 152
Problem
G.P.A.(Grade Point Average)即成绩点数与学分的加权平均值。 GPA一般用4分制(4.00 scale)计算,换算方法参见下表:
百分制分数 等级 成绩点数
90-100 A 4
80-89 B 3
70-79 C 2
60-69 D 1
60以下 E 0
例如某同学三门课程的学分和成绩为:
A课程4个学分,成绩92(A)
B课程3个学分,成绩75(C)
C课程5个学分,成绩80(B)
GPA=4×4+2×3+3×54+3+5=3.08
Input
输入第一行为整数NN(1≤N≤101≤N≤10),表示有NN门课程。
以下NN行每行为两个整数CC, SS (1≤C≤51≤C≤5, 0≤S≤1000≤S≤100)表示该门课程的学分和成绩。
Output
输出仅一个小数gg,表示该同学的GPA,结果保留22位小数
Sample Input
3
4 92
3 75
5 80
Sample Output
3.08
ps:水题
代码如下:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<string.h>
using namespace std;
int main () {
int n;
scanf("%d", &n);
int sum = 0;
int sum1 = 0;
while( n -- ) {
int a, b;
scanf("%d %d", &a, &b);
int index;
if(b >= 90 && b <= 100) index = 4;
else if(b >= 80 && b <= 89) index = 3;
else if(b >= 70 && b <= 79) index = 2;
else if(b >= 60 && b <= 69) index = 1;
else index = 0;
sum += index * a;
sum1 += a;
}
double p = sum*1.0 / sum1*1.0; //注意整形向浮点型转化
printf("%.2lf\n", p);
return 0;
}
还没有评论,来说两句吧...