The calculation of GPA(恶心水题)

The calculation of GPATime Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 21967Accepted Submission(s): 5046

Problem Description

每学期的期末,大家都会忙于计算自己的平均成绩,这个成绩对于评奖学金是直接有关的。国外大学都是计算GPA(grade point average) 又称GPR(grade point ratio),即成绩点数与学分的加权平均值来代表一个学生的成绩的。那么如何来计算GPA呢?一般大学采用之计分法A90 – 100 4 点B80 – 89 3 点C70 – 79 2 点D60 – 69 1 点E0 – 59 0 点例如:某位学生修习三门课,其课目、学分及成绩分别为:英文:三学分、92 分;化学:五学分、80 分;数学:二学分、60分,则GPA的算法如下:科目学分分数点数分数×点数英文392412化学580315数学26012合计102929/10=2.92.9即为某生的GPA下面有请你写一个用于计算GPA的程序。

Input

包含多组数据,每组数据的第一行有一个数N,接下来N行每行表示一门成绩。每行有两个实型的数 s,p,s表示这门课的学分,p表示该学生的成绩(百分制)。如果p=-1则说明该学生这门课缺考,是不应该计算在内的。

Output

对每组数据输出一行,表示该学生的GPA,保留两位小数。如果GPA不存在,输出-1。

Sample Input

33 925 802 60

Sample Output

2.90

Author

Speakless

Source

Recommend

JGShining|We have carefully selected several similar problems for you:12051219119612341228

Wa了十遍才过,不是说这题有多难,因为他么,这就是一个水果,只是这个水果很恶心.各位a友注意细节.

1.如果全部缺考输出-1.

2.学分,分数什么的统统用浮点数(我会告诉你我wa了十遍是因为没有判断分数可能为分数吗)

3.GPA计算方法=(分数*点数的和)/(学分和)

4.如果缺考学生小于全部那么 缺考 就相当于这门课 没有,也就是缺考不会拉低总的GPA.

import java.io.*;import java.util.*;public class Main{public static void main(String[] args){Scanner input = new Scanner(System.in);while (input.hasNext()){int n = input.nextInt();double s[] = new double[n];// 记录这门课的学分double p[] = new double[n];// 记录这门课的成绩double G[] = new double[n];// 记录这个学生的点GPAdouble product[] = new double[n]; // 记录分数*点数double sum1 = 0f, sum2 = 0f;// sum1记录学分和sum2记录乘积的和for(int i=0;i<n;i++){s[i]=input.nextDouble();p[i]=input.nextDouble();if(p[i]!=-1)sum1+=s[i];}for(int i=0;i<n;i++){if(p[i]>=90&&p[i]<=100)product[i]=s[i]*4.0;if(p[i]>=80&&p[i]<90)product[i]=s[i]*3.0;if(p[i]>=70&&p[i]<80)product[i]=s[i]*2.0;if(p[i]>=60&&p[i]<70)product[i]=s[i]*1.0;if(p[i]>=0&&p[i]<60)product[i]=s[i]*0.0;if(p[i]!=-1)sum2+=product[i];}if(sum1==0){System.out.print("-1");}else{System.out.printf("%.2f",sum2/sum1);}System.out.println();}}}

,放手后的微笑,只是用来掩盖疼痛的伤疤…

The calculation of GPA(恶心水题)

相关文章:

你感兴趣的文章:

标签云: