題目1133:學分績點 (C++/Java)

來源:互聯網
上載者:User

標籤: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);)

範例輸入:
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****************************************************************/



題目1133:學分績點 (C++/Java)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.