HDOJ 1202 The calculation of GPA
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的算法如下:
科目 學分 分數 點數 分數×點數
英文 3 92 4 12
化學 5 80 3 15
數學 2 60 1 2
合計 10 29
29/10=2.9
2.9即為某生的GPA
下面有請你寫一個用于計算GPA的程序。
Input
包含多組數據,每組數據的第一行有一個數N,接下來N行每行表示一門成績。每行有兩個實型的數 s,p,s表示這門課的學分,p表示該學生的成績(百分制)。如果p=-1則說明該學生這門課缺考,是不應該計算在內的。
Output
對每組數據輸出一行,表示該學生的GPA,保留兩位小數。如果GPA不存在,輸出-1。
Sample Input
3
3 92
5 80
2 60
Sample Output
2.90
注意:成績和學分都可以是小數的!!!
import java.util.Scanner;public class Main{public static void main(String[] args) {Scanner sc = new Scanner(System.in);while(sc.hasNext()){int n=sc.nextInt();double a[][] = new double[n+1][3];for(int i=0;i<n;i++){a[i][0]=sc.nextDouble();a[i][1]=sc.nextDouble();}a[n][0]=0;a[n][2]=0;for(int i=0;i<n;i++){if(a[i][1]>=0&&a[i][1]<60){a[i][2]=0;a[n][0]=a[i][0]+a[n][0];a[n][2]=(a[i][2]*a[i][0])+a[n][2];//System.out.println(a[n][2]);}else if(a[i][1]>=60&&a[i][1]<70){a[i][2]=1;a[n][0]=a[i][0]+a[n][0];a[n][2]=(a[i][2]*a[i][0])+a[n][2];//System.out.println(a[n][2]+"60-70");}else if(a[i][1]>=70&&a[i][1]<80){a[i][2]=2;a[n][0]=a[i][0]+a[n][0];a[n][2]=(a[i][2]*a[i][0])+a[n][2];//System.out.println(a[n][2]+"70-80");}else if(a[i][1]>=80&&a[i][1]<90){a[i][2]=3;a[n][0]=a[i][0]+a[n][0];a[n][2]=(a[i][2]*a[i][0])+a[n][2];//System.out.println(a[n][2]);}else if(a[i][1]>=90&&a[i][1]<=100){a[i][2]=4;a[n][0]=a[i][0]+a[n][0];a[n][2]=(a[i][2]*a[i][0])+a[n][2];//System.out.println(a[n][2]);}}//System.out.println(a[n][0]);//System.out.println(a[n][2]);if(a[n][0]==0){System.out.println(-1);}else{System.out.printf("%.2f",a[n][2]/a[n][0]);System.out.println();}}}}轉載于:https://www.cnblogs.com/webmen/p/5739328.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的HDOJ 1202 The calculation of GPA的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hdu1032 Train Proble
- 下一篇: 153. Find Minimum in