题目1133:学分绩点 (C++/Java)

来源:互联网 发布:卫生部 疾病数据 编辑:程序博客网 时间:2024/04/29 10:26
题目描述:

北京大学对本科生的成绩施行平均学分绩点制(GPA)。既将学生的实际考分根据不同的学科的不同学分按一定的公式进行计算。
公式如下:
实际成绩 绩点
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.一门课程的学分绩点=该课绩点*该课学分
2.总评绩点=所有学科绩点之和/所有课程学分之和
现要求你编写程序求出某人A的总评绩点(GPA)。

输入:

第一行 总的课程数n(n<10);
第二行 相应课程的学分(两个学分间用空格隔开);
第三行 对应课程的实际得分;
此处输入的所有数字均为整数。

输出:

输出有一行,总评绩点,精确到小数点后2位小数。(printf("%.2f",GPA);)

样例输入:
54 3 4 2 391 88 72 69 56
样例输出:
2.52
import java.text.DecimalFormat;import java.util.Scanner; public class Main{    public static void main(String args[])    {        Scanner cin=new Scanner(System.in);        DecimalFormat decimal_format=new DecimalFormat("#.00");        int total_course;        int i,j,k;        int [] course_GPA=new int[10];        int [] course_Grades=new int [10];        while(cin.hasNext())        {            int total_GPA=0;            float sum=0;            total_course=cin.nextInt();            for(i=0;i<total_course;i++)            {                course_GPA[i]=cin.nextInt();                total_GPA+=course_GPA[i];            }            for(j=0;j<total_course;j++)            {                course_Grades[j]=cin.nextInt();            }            for(k=0;k<total_course;k++)            {                if(course_Grades[k]>=90)                {                    sum+=4.0*course_GPA[k];                }                if((course_Grades[k]>=85)&&(course_Grades[k]<=89))                {                    sum+=3.7*course_GPA[k];                }                if((course_Grades[k]>=82)&&(course_Grades[k]<=84))                {                    sum+=3.3*course_GPA[k];                }                if((course_Grades[k]>=78)&&(course_Grades[k]<=81))                {                    sum+=3.0*course_GPA[k];                }                if((course_Grades[k]>=75)&&(course_Grades[k]<=77))                {                    sum+=2.7*course_GPA[k];                }                if((course_Grades[k]>=72)&&(course_Grades[k]<=74))                {                    sum+=2.3*course_GPA[k];                }                if((course_Grades[k]>=68)&&(course_Grades[k]<=71))                {                    sum+=2.0*course_GPA[k];                }                if((course_Grades[k]>=64)&&(course_Grades[k]<=67))                {                    sum+=1.5*course_GPA[k];                }                if((course_Grades[k]>=60)&&(course_Grades[k]<=63))                {                    sum+=1.0*course_GPA[k];                }                if(course_Grades[k]<60)                {                    sum+=0.0*course_GPA[k];                }            }            //System.out.println("总绩点"+sum+" "+"总学分"+total_GPA);            System.out.print(decimal_format.format(sum/total_GPA));            System.out.print("\n");        }    }}/**************************************************************    Problem: 1133    User: Carvin    Language: Java    Result: Accept****************************************************************/

转载的C++:

#include<stdio.h>double ScorePoint(int a) {     if(a>=90) return 4.0;     else if(a>=85) return 3.7;     else if(a>=82) return 3.3;     else if(a>=78) return 3.0;     else if(a>=75) return 2.7;     else if(a>=72) return 2.3;     else if(a>=68) return 2.0;     else if(a>=64) return 1.5;     else if(a>=60) return 1.0;     else return 0; }    int main() {     int i,n,sum;//n 总的课程数 sum 所有所有课程学分之和     double psum;//所有学科绩点之和     int a[10],b[10];     //freopen("C:\\Users\\SJF\\Desktop\\acm.txt","r",stdin);     while(scanf("%d",&n) != EOF)     {         sum = 0;         psum = 0;         //输入课程学分         for(i = 0;i < n;i++){             scanf("%d",&a[i]);             //所有课程学分之和             sum += a[i];         }         //输入课程的实际得分         for(i = 0;i < n;i++){             scanf("%d",&b[i]);             //一门课程的学分绩点=该课绩点*该课学分             psum += ScorePoint(b[i]) * a[i];         }         printf("%.2f\n",psum/sum);     }     return 0; } /**************************************************************    Problem: 1133    User: Carvin    Language: C++    Result: Accepted    Time:0 ms    Memory:1020 kb****************************************************************/



0 0