码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2015-04-03 15:22:24      阅读:536      评论:0      收藏:0      [点我收藏+]

标签:online judge   九度   java   

题目描述:

北京大学对本科生的成绩施行平均学分绩点制(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);)

样例输入:
5
4 3 4 2 3
91 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
****************************************************************/



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

标签:online judge   九度   java   

原文地址:http://blog.csdn.net/carvin_zh/article/details/44854839

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!