试题 算法提高 GPA

问题描述
  输入A,B两人的学分获取情况,输出两人GPA之差。
输入格式
  输入的第一行包含一个整数n表示A的课程数,以下n行每行Si,Ci分别表示第i个课程的学分与A的表现。
  GPA=Σ(Si*Ci) / Σ(Si)。
  特殊地,如果Ci是’P’或者’N’(对应于通过与不通过),则第i个课程不记入GPA的计算(即当其不存在)。
  A读入结束后读入B,B的输入格式与A相同。
  保证2人的Σ(Si)非零
输出格式
  输出A的GPA - B的GPA的值,保留2位小数(四舍五入)
  Tips:当A和B的分数相近时输出0.00。
样例输入
2
1 10
2 N
2
1 10
1 5
样例输出
2.50
数据规模和约定
  输入的所有数字均为不超过100的非负整数

 

import java.util.Scanner;

public class Main {
    public static void main (String[] args){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int num1 = 0, num2 = 0;
        for (int i = 0;i < n;i++){
            int s1 = sc.nextInt();
            String s=sc.next();
            if (Character.isDigit(s.charAt(0))) {
                int c1=Integer.valueOf(s);
                num1+=s1*c1;
                num2+=s1;
            } else {
                continue;
            }
        }
        double temp1=num1*1.0/num2;
          n = sc.nextInt();
        int num3 = 0, num4 = 0;
        for (int i = 0;i < n;i++){
            int s1 = sc.nextInt();
            String s=sc.next();
            if (Character.isDigit(s.charAt(0))) {
                int c1=Integer.valueOf(s);
                num3+=s1*c1;
                num4+=s1;
            } else {
                continue;
            }
        }
//        System.out.println(num3);
        double temp2=num3*1.0/num4;
//        System.out.println(temp1);
//        System.out.println(temp2);
        if (Math.abs(temp1 - temp2)<1e-2f) {
            System.out.println("0.00");
            return;
        }
        System.out.printf("%.2f",temp1-temp2);
    }
}