• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 7, comments - 13, trackbacks - 0, articles - 37
               :: 首頁 :: 新隨筆 :: 聯系 ::  :: 管理
            題目描述

            The calculation of GPA

            Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
            Total Submission(s): 2613    Accepted Submission(s): 598


            Problem Description
            每學期的期末,大家都會忙于計算自己的平均成績,這個成績對于評獎學金是直接有關的。國外大學都是計算GPA(grade point average) 又稱GPR(grade point ratio),即成績點數與學分的加權平均值來代表一個學生的成績的。那么如何來計算GPA呢?

            一般大學采用之計分法

            A90 - 100 4 點
            B80 - 89 3 點
            C70 - 79 2 點
            D60 - 69 1 點
            E0 - 59 0 點

            例如:某位學生修習三門課,其課目、學分及成績分別為:
            英文:三學分、92 分;化學:五學分、80 分;數學:二學分、60分,則GPA的算法如下:

            科目 學分 分數 點數 分數×點數 
            英文  3    92    4     12
            化學  5    80    3     15
            數學  2    60    1      2
            合計  10   29
            29/10=2.9
            2.9即為某生的GPA
            下面有請你寫一個用于計算GPA的程序。
             

            Input
            包含多組數據,每組數據的第一行有一個數N,接下來N行每行表示一門成績。每行有兩個實型的數 s,p,s表示這門課的學分,p表示該學生的成績(百分制)。如果p=-1則說明該學生這門課缺考,是不應該計算在內的。
             

            Output
            對每組數據輸出一行,表示該學生的GPA,保留兩位小數。如果GPA不存在,輸出-1。
             

            Sample Input
            3
            3 92
            5 80
            2 60
             

            Sample Output
            2.90
            鏈接http://acm.hdu.edu.cn/showproblem.php?pid=1202
            我的代碼
            //杭電1202
            #include<iostream>
            #include<iomanip>
            using namespace std;
            int main()
            {
            float suma=0,nowa,nowb,sum=0,point;
            int   n;
            int   flag=0;
            while(cin>>n)
            {
             for(int i=0;i<n;++i)
             {
              cin>>nowa>>nowb;
             if(nowb==-1)
              {
               flag++;
               continue;
              }
              if(nowb!=-1)
              {
             suma+=nowa;
               if(nowb>=90&&nowb<=100)
               point=4;
              if(nowb>=80&&nowb<90)
               point=3;
               if(nowb>=70&&nowb<=79)
             point=2;
               if(nowb>=60&&nowb<=69)
             point=1;
               if(nowb>=0&&nowb<=59)
             point=0;
                sum+=point*nowa;
              }
             
             }
            if(flag!=n)
            {cout<<setiosflags(ios::fixed)<<setiosflags(ios::right)<<setprecision(2);
             cout<<sum/suma<<endl;
            }
            else
              cout<<-1<<endl;
            }
            return 0;
            }
            別人AC的代碼
            #include<stdio.h>
            int main()
            {
               int i,sub;
               float score,allgpa,credit,allcredit;
               while(scanf("%d",&sub)!=EOF)
             {
               allgpa=0;
               allcredit=0;
               for(i=0;i<sub;i++)
              {
                 scanf("%f%f",&credit,&score);
                 if(score!=-1)
                 {
                     allcredit+=credit;
                     if(score==100)
                       allgpa+=credit*4;
                     else
                       if(score>59)
                         allgpa+=credit*((int)score/10-5);
                 }
               }
               if(allcredit==0)
               printf("-1\n");
               else printf("%.2f\n",allgpa/allcredit);
              }
            return 0;
            }
            我怎么也找不出錯誤呀

            Feedback

            # re: WA了無數次 我徹底郁悶了 --------------記杭電1202題  回復  更多評論   

            2009-04-08 23:02 by dengrenyi
            告訴你把 問題好像出在你定義的變量的初始化上

            # re: WA了無數次 我徹底郁悶了 --------------記杭電1202題  回復  更多評論   

            2009-04-08 23:05 by dengrenyi
            你有沒有想過,你在最前面定義的時候初始化,運算一次之后里面保存的是你前面一次計算的值,第二次運行并未進行修改

            # re: WA了無數次 我徹底郁悶了 --------------記杭電1202題  回復  更多評論   

            2009-04-11 11:20 by 路子
            @dengrenyi
            十分感謝

            # re: WA了無數次 我徹底郁悶了 --------------記杭電1202題  回復  更多評論   

            2009-10-15 09:47 by summercool
            問題在這里:
            p可能是實數,不過題意描述得有問題,如果p在89到90之間,你的程序就沒法算了,但AC的代碼還是可以算的,我一開始也是你那樣寫,因為根據題目很直觀就能得到,不過,杭電的這個題目確實有問題!

            # re: WA了無數次 我徹底郁悶了 --------------記杭電1202題  回復  更多評論   

            2010-07-25 22:18 by yanxiangtianji
            答案錯了
            答案對于gpa為0沒有區分是全掛了還是全缺考了,單純當做全缺考處理。
            我在:http://acm.hdu.edu.cn/discuss/problem/post/reply.php?postid=1090&messageid=1&deep=0有詳細說明
            国产欧美久久久精品| 久久久久久精品免费看SSS| 精品国产91久久久久久久| 色综合久久天天综合| 国产精品久久久久久久久久影院 | 亚洲国产成人久久综合一区77 | 久久青青草视频| 国内精品九九久久久精品| 国产精品九九久久免费视频| 一级女性全黄久久生活片免费 | 久久国产精品成人免费| 欧美日韩精品久久免费| 国产99久久九九精品无码| 婷婷久久久亚洲欧洲日产国码AV | 久久99精品久久久久久野外| 亚洲精品白浆高清久久久久久| 国产精品99久久不卡| 国产一久久香蕉国产线看观看| 久久精品国产乱子伦| 理论片午午伦夜理片久久 | 久久线看观看精品香蕉国产| 亚洲午夜久久久久久久久久| 久久天天躁狠狠躁夜夜不卡| 久久亚洲国产中v天仙www| 久久久免费精品re6| 影音先锋女人AV鲁色资源网久久 | 久久精品免费观看| 久久久噜噜噜久久中文福利| 77777亚洲午夜久久多喷| 一本一本久久a久久精品综合麻豆| 亚洲欧美精品伊人久久| 精品国产一区二区三区久久| 狠狠色婷婷综合天天久久丁香| 久久精品人人槡人妻人人玩AV| 久久亚洲AV成人无码国产 | 一本大道久久a久久精品综合| 国产一区二区精品久久 | 亚洲色婷婷综合久久| 久久WWW免费人成一看片| 亚洲欧美日韩中文久久| 国产精品免费福利久久|