题解 | 学分绩点

学分绩点

https://www.nowcoder.com/practice/a0c09a7e0da04e728810a8aca7226b7b

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextInt()) { // 注意 while 处理多个 case
            int a = in.nextInt();
            int pointSum = 0;
            double gradeSum = 0;
            int [] array = new int[a];
            for (int i = 0; i < a; i++) {
                array[i] = in.nextInt();
                pointSum += array[i];
            }
            for (int i = 0; i < a; i++) {
                int score = in.nextInt();
                gradeSum += getScore(score) * array[i];
            }
            System.out.printf( "%.2f", 1.0 * gradeSum / pointSum);
        }
    }

    /**
        绩点
        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 1
     */
    public static double getScore(int grade) {
        if (grade >= 90) return 4.0;
        if (grade >= 85) return 3.7;
        if (grade >= 82) return 3.3;
        if (grade >= 78) return 3.0;
        if (grade >= 75) return 2.7;
        if (grade >= 72) return 2.3;
        if (grade >= 68) return 2.0;
        if (grade >= 64) return 1.5;
        if (grade >= 60) return 1.0;
        else return 0.0;
    }
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务